Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 植物学/C++;-使用密钥大小大于32字节的AES进行加密_C++_Encryption_Aes_Botan - Fatal编程技术网

C++ 植物学/C++;-使用密钥大小大于32字节的AES进行加密

C++ 植物学/C++;-使用密钥大小大于32字节的AES进行加密,c++,encryption,aes,botan,C++,Encryption,Aes,Botan,我需要用AES-256加密,但我还需要一个大于32字节的密钥。我有一个函数,它接受文本、密钥和IV,并返回加密文本。它适用于小于32字节的所有内容,但任何大于32字节的内容都会导致错误 那么从本质上讲,我如何实现一种使用大于32字节的键的方法呢?我已经尝试过将密钥拆分为32字节(或更少)字符串的向量,然后使用这些字符串作为密钥,但我无法找到一种方法一次性使用所有这些密钥对文本进行统一加密,所以我能做什么?使用AES-256,密钥大小始终为32字节长(256/8=32) 当输入密码不完全是32字节

我需要用AES-256加密,但我还需要一个大于32字节的密钥。我有一个函数,它接受文本、密钥和IV,并返回加密文本。它适用于小于32字节的所有内容,但任何大于32字节的内容都会导致错误


那么从本质上讲,我如何实现一种使用大于32字节的键的方法呢?我已经尝试过将密钥拆分为32字节(或更少)字符串的向量,然后使用这些字符串作为密钥,但我无法找到一种方法一次性使用所有这些密钥对文本进行统一加密,所以我能做什么?

使用AES-256,密钥大小始终为32字节长(256/8=32)

当输入密码不完全是32字节和/或质量较差时,使用a。对于具有足够熵的密钥,一个简单的散列函数(如SHA-256)就足够了


换句话说,只需通过SHA-256输入您的输入键,就可以输出一个可用于AES-256的32字节键。

顾名思义,AES-256使用256位或32字节键。为什么你认为你需要一个更大的钥匙尺寸?似乎是X-Y问题。我需要一个更大的密钥,因为这需要用户输入。用户输入的值(如密码)往往是低熵的,这表明使用基于密码的密钥派生函数(如argon2)的处理方式有所不同。为什么需要一个超过32字节的密钥?有问题的文本长度是多少?这个问题在技术上是错误的。我使用的是密钥输入作为密钥,例如密码。我可能只是去sha256输入,所以我只需要sha256输入键,然后用它作为键?