我想结合散列和加密以获得更好的安全性。那么我可以使用从 SHA-512 生成的哈希密钥作为 AES 中的密钥吗?
例如,我有一个密码“秘密”,我为它计算 SHA-512 哈希,我想将这些字节作为 AES 的密钥。
执行此操作时我需要注意哪些事项?
我想结合散列和加密以获得更好的安全性。那么我可以使用从 SHA-512 生成的哈希密钥作为 AES 中的密钥吗?
例如,我有一个密码“秘密”,我为它计算 SHA-512 哈希,我想将这些字节作为 AES 的密钥。
执行此操作时我需要注意哪些事项?
从技术上讲,并非如此。AES-256 需要 256 位密钥。SHA-512 将输出 512 位,因此除非您切掉一半的摘要,否则它将无法工作。
更好的解决方案是使用标准且经过良好测试的密钥派生函数,例如 pbkdf2。
除非绝对必要,否则不要推出自己的加密货币。使用经过审查的结构。
到目前为止一切都很好,但是使用 SHA-256 作为 AES 密钥是一种很好的做法,恕我直言。尤其是在“文本密码”的情况下——验证最小长度和复杂性——然后你就可以开始了。