AES 的加密密钥有多长(以字母表示)?

信息安全 加密 AES
2021-08-19 10:45:51

非对称算法(例如 AES)的加密/解密密钥有多长?如果我使用 AES 128 位,我应该为我的密钥输入多少个字符?AES 256 位呢?

编辑:这就是我问的原因:我正在尝试使用 OpenSSL 使用 Node.js、PHP 和命令行来加密一些数据。我需要交出钥匙。当我为 AES128 尝试 32 个字母密钥时,它返回密钥长度错误。当我为 AES256 尝试 32 时,它返回了一般密钥错误。我不知道我应该如何输入加密密钥...

3个回答

AES 128 位密钥可以表示为 32 个字符的十六进制字符串。它将需要 24 个 base64 字符。

AES 256 位密钥可以表示为 64 个字符的十六进制字符串。它将需要 44 个 base64 字符。

AES 的加密密钥不以字符或字母表示。加密密钥是一系列 128(或 256)位。

如果您使用某种界面来输入基于文本的密码,那么在内部它会将您输入的密码变成位。它可能正在使用像 PBKDF2 这样的复杂例程,或者是 SHA-1 的单次迭代。

在这种情况下,您需要了解某人猜测您的密码的不可预测性,而不是考虑最少的字符数。关于这个主题已经写了很多。我建议你在谷歌上搜索“正确的马电池主食”,以获得关于该主题的优秀入门。

对于 128 位密钥:

每个字符 8 位原始(base-256,即一个字符可以采用任何字节值)
每个字符 6 位 base-64 编码