JAVA - 在 AES 128 中使用 Windows 用户名加密文本

标签 java aes decode encode

我想使用 Windows 用户名作为 key 来加密和解密文本。

但是当我尝试时, key 太短了: 无效的 AES key 长度:7 个字节

我必须在使用前对 key 进行编码吗?

提前致谢

最佳答案

技术上 - key 需要 128 位长(或 192 或 256 位)。最简单的方法是使用填充(附加一些常量值以扩展到所需的长度)。

这种方法高度不安全,您可以将这种方法视为编码,而不是加密。

需要适当的加密

  • 拥有 key secret 。如果代码/配置驻留在用户的工作站上,这确实很难实现,但从安全角度来看,使用用户名听起来是一个非常糟糕的主意

  • 对 key 加盐。使用随机盐和哈希函数(例如 PBKDF2)从密码创建加密 key 。

关于JAVA - 在 AES 128 中使用 Windows 用户名加密文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370064/

相关文章:

java - 参数化类型(如 Class<)的等效 C# 是什么?在 Java 中扩展 Throwable>?

Javadoc @author 标签良好实践

c++ - OpenSSL:AES CCM 256 位大文件加密 block :这可能吗?

php - 你如何编码像\u00d6 这样的字符串?

PHP如何使用 key 编码/解码文本?

java - java.util.TreeSet的tailSet操作的时间复杂度是多少?

java - Hazelcast 获取 Imap 中 key 的 ttl

flutter - 输入数据长度必须是 AES CTR 中密码 block 大小的倍数

java - 如何使用openssl解密Java使用AES加密的数据

javascript - 如何使用 Javascript 进行编码和解码(给定的字符串长度应与编码字符串长度匹配)