2012-01-27 10 views
1

urlパラメータを使用して、トークン化された(暗号化された)ユーザ名と日付をwebapp Aからwebapp Bに渡す必要があります。 http://webappB?username=userA&timestamp=13445341313のようなものはhttp://webappB?token=geufjsggtj26hjdhcjre87klj3として送信する必要があります。受信側WebアプリケーションBは、トークンを元のパラメータにデコードすることができます。 .NETとJavaで利用できるシンプルなソリューションを提供するテクノロジはどれですか?ありがとうユーザー名と日付トークンを暗号化またはトークン化する方法は?

+0

してください再タイトルこの:

コードの一部は、以上の千個の言葉を述べています。 – paislee

答えて

-1

あなたが示唆したことは、非常に単純で、Javaと.NETが既に提供しているもの以外の技術を含める必要はありません。 HTTPリクエストを作成して適切なURLに送信し、応答を待ち受けるだけです。

クラス参照

あなたはこのの多くをやっていると思う、またはデータをより頻繁に取得する場合は、複雑な、または構造化された、拡張性とモジュール性のためのユビキタスSOAPWikipediaプロトコルを強くお勧めします。

+0

接続に問題はありません。ユーザー名と日付のパラメータをURLパラメータとして送信される単一のトークンにエンコード/デコードするにはどうすればよいですか。 –

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]); 
    } 
関連する問題