Tim*_*kle 0 java encryption aes
我正在尝试使用Java和AES Cipher.getInstance(“ AES / CBC / PKCS5PADDING”)加密和解密字符串。
当我加密数据并尝试将其打印到控制台时,我得到的字符是这样的:
?0 ?? J?9U \?6N ???。??????«D?<(??? H(?G?j ???%??? u ?? ^ ??????'? bT /?05 ??? 0 + u)b ??? {G?d ?? /?:??〜???? J%???〜_ ??? _ ????〜?W? s?+] 9?{Y?N ???? J {??????Ä??
它是否正确?可以说“它是加密的”吗?我的期望是得到像“ WERWERWERWER”这样的文字字符串
那是因为加密的消息以字节为单位(0-255)。要获得想要的字符串,您需要使用base 64编码输出。
基于此答案,您可以在Java 8中执行此操作,而无需使用任何库。
import java.util.Base64;
//base64 encoding
byte[] encodedBytes = Base64.getEncoder().encode("Test".getBytes("UTF-8"));
System.out.println("encodedBytes " + new String(encodedBytes));
//base64 decoding
byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));
Run Code Online (Sandbox Code Playgroud)
替换"Test".getBytes("UTF-8")为AES的输出
| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |