2016-05-20 150 views
-4

我想要一个AES的实现,它将两个字符串输入(明文,密钥)作为参数并输出加密的字符串密文。我在互联网上搜索,但我没有找到。我发现AES具有字节[]输入并输出字符串,反之亦然。它是否已经实现,或者我必须与Java一起玩,并创建一些方法来最终完成这项工作? 谢谢!AES输入和输出

+0

这可能有助于http://stackoverflow.com/questions/992019/java-256-bit-aes-password-based-encryption – sbowde4

+0

你在问错误的问题。你应该问的问题是“*为什么*加密似乎总是吐出byte []密文,而不是String密文?”你应该能够自己找到这个问题的答案,当你明白答案时,你会更好地理解加密。 – zwol

+0

还要注意*根本问这个问题*表明你试图重新发明轮子。你确定**你需要直接使用AES,而不是TLS? – zwol

回答

2

AES加密产生字节,这就是为什么你总是得到字节。你可以使用的是一个单独的进程,将结果字节数组转换为一个字符串。通常的做法是使用Base64。请参阅java.util.Base64课程。

记住在解密之前将Base64字符串转换回字节数组。如果你不这样解密将会失败。

加密:明文 - >加密 - >字节 - > Base64编码字符串

解密:Base64编码字符串 - >字节 - >解密 - >解密的明文