【发布时间】:2020-09-08 19:33:41
【问题描述】:
我正在尝试使用带有 AES 算法的 java Cipher 加密和解密字符串。但不知何故,它不想加密整个字符串。我的目标不是安全地加密特定的东西,我希望有人不能很容易地读取字符串(后来存储在文件中)。
为了加密,我使用以下代码:
Cipher cipher = Cipher.getInstance("AES");
byte[] input = plain.getBytes();
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encrypted = cipher.doFinal(input);
return new String(encrypted);
为了解密,我使用以下代码:
Cipher cipher = Cipher.getInstance("AES");
byte[] input = encrypted.getBytes();
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decrypted = cipher.doFinal(input);
return new String(decrypted);
为了测试上面提到的代码,我使用了以下参数:
SecretKeySpec key = new SecretKeySpec(new byte[]{103,38,125,-67,-71,-23,-119,102,78,-3,-33,-23,-5,32,-112,-124}, "AES");
String plain = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur auctor ornare bibendum."
该测试产生加密然后再次解密的字符串:
�T���Ѩ�%���Kr sit amet, consectetur adipiscing elit. Curabitur auctor ornare bibendum.
【问题讨论】:
标签: java encryption cryptography aes