【问题标题】:AES input and output [closed]AES输入和输出[关闭]
【发布时间】:2016-09-18 05:48:23
【问题描述】:

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

【问题讨论】:

  • 你问错问题了。您应该问的问题是“为什么加密似乎总是吐出字节 [] 密文,而不是字符串密文?”您应该能够自己找到该问题的答案,并且当您理解了答案后,您将更好地理解加密。
  • 另请注意,提出这个问题表明您正在尝试重新发明轮子。您确定需要直接使用 AES,而不是 TLS?
  • 如上所述,AES 通常不将字符串作为输入是有原因的。如果您真的想要它,请查看使用 byte[] 的版本并进行转换。 @zwol 我不完全明白你的意思。 AES 和 TLS 是两个非常不同的东西,我认为没有理由错误地使用 AES 而不是 TLS。

标签: java encryption bytearray aes


【解决方案1】:

AES 加密会产生字节,这就是为什么总是会输出字节。您可以使用一个单独的过程将生成的字节数组转换为字符串。通常的方法是使用 Base64。请参阅java.util.Base64 类。

请记住在解密之前将您的 Base64 字符串转换回字节数组。否则解密将失败。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多