AES で Decrypt を使用することについて質問があります。テキストを暗号化する同じプログラムを書きました。
これが私の Decrypt クラスです。(私は 16 バイトのキーを使用します)。
public static byte[] decryptAES(String message) throws Exception
{
String secretKey = "JohnIsAwesome!1!";
SecretKeySpec key = new SecretKeySpec(secretKey.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, key);
return cipher.doFinal(message.getBytes());
}
ここが私のメインです。暗号化は完全に機能しています。
public static void main (String[] args) throws Exception
{
String text = "MySuperSecretPassword!";
//Ecrypt the Text, then print it out in an array
String encryptText = Arrays.toString(encryptAES(text));
System.out.println("Encrypted Message"+ encryptText);
//Decrypt the Text, then print it out in an array
String decryptText = Arrays.toString(decryptAES(text1));
System.out.println("Decrypted Message"+ decryptText);
}
出力を暗号化します。
暗号化されたメッセージ[16、69、84、118、68、-36、-67、125、-86、-106、-4、24、-59、-77、-41、-32、-37、104、- 44、-42、112、87、87、101、28、99、60、-27、34、-88、-17、-114]
復号化が機能しない理由を誰かが知っている場合は、大歓迎です。私はこれで壁に頭をぶつけてきました。
ありがとうございました
申し訳ありませんが、ここにも Encrypt クラスを追加するのを忘れていました。
public static byte[] encryptAES(String message) throws Exception
{
String secretKey = "JohnIsAwesome!1!";
SecretKeySpec key = new SecretKeySpec(secretKey.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, key);
return cipher.doFinal(message.getBytes());
}