トークン化された (暗号化された) ユーザー名と日付を webapp A から webapp B に url パラメーターを介して渡す必要があります。http://webappB?username=userA×tamp=13445341313のようなものは、 http://webappB?token=geufjsggtj26hjdhcjre87klj3として送信する必要があります。受信側の Web アプリ B は、トークンを元のパラメーターにデコードできる必要があります。.NET と Java で使用できる単純なソリューションを提供するテクノロジはどれですか? ありがとう
2045 次
2 に答える
0
さらに調査した結果、見つけた解決策を共有したいと思います。プラットフォーム間で暗号化を使用することを支持して、非常に単純な対称XORベースのスクランブリング方法を選択しました。
コードの一部は千以上の単語を言います:
// webappA, encode URL parameter
byte[] userBytes = username.getBytes("UTF-8");
byte[] keyBytes = key.getBytes("UTF-8");
//XOR scramble
byte[] encrypted = new byte[userBytes.length];
for(int i = 0; i < userBytes.length; i++){
encrypted[i] = (byte)(userBytes[i] ^ keyBytes[i % keyBytes.length]);
}
BASE64Encoder encoder = new BASE64Encoder();
String encoded = encoder.encode(encrypted);
// webappB, decode the parameter
BASE64Decoder decoder = new BASE64Decoder();
byte[] decoded = decoder.decodeBuffer( encoded );
//XOR descramble
byte[] decrypted = new byte[decoded.length];
for(int i = 0; i < decoded.length; i++){
decrypted[i] = (byte)(decoded[i] ^ keyBytes[i % keyBytes.length] );
}
于 2012-01-31T09:55:03.730 に答える
-1
あなたが提案したことは非常に単純で、Java と .NET が既に提供しているもの以外のテクノロジを含める必要はありません。HTTP リクエストを作成し、適切な URL に送信して、レスポンスをリッスンするだけです。
クラス参照
- Java: HttpURLConnectionオラクル
- .NET: Web リクエストMSDN
これ以上のことを行うと思われる場合、またはデータがより頻繁に、複雑に、または構造化されると思われる場合は、拡張性とモジュール性のためにユビキタスなSOAPウィキペディアプロトコルを強くお勧めします。
于 2012-01-27T23:05:31.183 に答える