【发布时间】:2021-01-27 22:45:50
【问题描述】:
我需要使用 AES-256 进行加密,但我还需要一个大于 32 字节的密钥。我有一个函数,它接受文本、密钥和 IV,并返回加密的文本。它适用于小于 32 字节的所有内容,但任何更大的内容都会给我一个错误。
所以本质上,我怎样才能实现使用大于 32 字节的键的方法?我已经尝试将密钥拆分为 32 字节(或更少)字符串的向量,然后将它们用作密钥,但我无法找到一种方法来一次使用所有这些密钥统一加密文本,那我该怎么办?
【问题讨论】:
-
顾名思义,AES-256 使用 256 位或 32 字节的密钥。为什么你认为你需要更大的密钥大小?似乎是 X-Y 问题。
-
我需要一个更大的键,因为这需要用户输入。
-
用户输入的值(如密码)往往是低熵的,这表明使用基于密码的密钥派生函数(如 argon2)进行不同的处理。
-
为什么需要超过 32 个字节的密钥?是有问题的文本长度吗?这个问题在技术上是错误的。
-
我使用密钥输入作为密钥,例如密码。我可能只是去 sha256 输入
标签: c++ encryption aes botan