我可以使用 SHA-512 哈希作为 AES 密钥吗?

信息安全 加密 密码学 哈希 AES
2021-09-02 08:21:24

我想结合散列和加密以获得更好的安全性。那么我可以使用从 SHA-512 生成的哈希密钥作为 AES 中的密钥吗?

例如,我有一个密码“秘密”,我为它计算 SHA-512 哈希,我想将这些字节作为 AES 的密钥。

执行此操作时我需要注意哪些事项?

2个回答

从技术上讲,并非如此。AES-256 需要 256 位密钥。SHA-512 将输出 512 位,因此除非您切掉一半的摘要,否则它将无法工作。

更好的解决方案是使用标准且经过良好测试的密钥派生函数,例如 pbkdf2。

除非绝对必要,否则不要推出自己的加密货币。使用经过审查的结构。

到目前为止一切都很好,但是使用 SHA-256 作为 AES 密钥是一种很好的做法,恕我直言。尤其是在“文本密码”的情况下——验证最小长度和复杂性——然后你就可以开始了。