AESを使用してサーバー側でセッションIDを暗号化しましたが、クライアントサイドで暗号化されたセッションIDを解読できません.GWT用に定義されたAESライブラリがないため、AES解読をjavaでサポートしていません。 サーバ側でのAES暗号化のためのコードスニペットは、次のとおりです。 http://reassess.blogspot.in/2009/07/gwt-and-aes-decryption.htmlクライアント側のAES解読
をしかし、このありえない、作業:
public static String encrypt(String sessionId)
{
try
{
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
String key = "Abcdefghijklmnop";
final SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
final String encryptedSessionId = Base64.encodeBase64String(cipher.doFinal(sessionId.getBytes()));
return encryptedSessionId;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
は、復号化のために私は、このリンクで提供されているコードをしようとしています。誰かがいる場合は、何か解決策を提示してください。
DESで暗号化と復号化を試しましたが、AESを使用する必要があります。
セッションIDを暗号化することの目的は何ですか? –
このスニペットは、IVが保存されていないため、解読不可能な暗号テキストを生成します。 IVは秘密ではないので、暗号文とともに送ることができます。通常は、単純に暗号文の前に付加され、解読の前にスライスされます。 –
対称暗号だけを使用している場合は、サーバとクライアントで全く同じ鍵が必要です。サーバーからクライアントに暗号鍵を送信する場合、または他の方法で暗号鍵を暗号化する必要があります。これを行う最も簡単な方法は、TLSを使用することです。 TLSを使用する場合、データとキーは暗号化されているので、自分で暗号化する必要はありません。これは、少しの難読化のセキュリティを提供しません。あなたは読む必要があります:https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considered-harmful/ –