【发布时间】:2016-03-18 10:16:36
【问题描述】:
我在为 crypto++ 中的 3 键三重 DES 分配新密钥时遇到问题。
我已经生成了一个字符串形式的新密钥,但需要将它分配给 SecByteBlock 以便在 Crypto++ 中使用。
目前我在开始时使用 PRNG 生成一个随机密钥,但是当我尝试使用 DES_EDE3 的字符串输出更改密钥时,它似乎使用了相同的密钥。
我认为问题在于字符串和SecByteBlock之间的转换,或者分配给SecByteBlock,如下所示。
任何帮助将不胜感激!
SecByteBlock GENERATOR::setKey(string keyString){
SecByteBlock replacementKey(24);
replacementKey= SecByteBlock(reinterpret_cast<const byte*>(keyString.data()), keyString.size());
return newKey = replacementKey;
}
【问题讨论】:
-
newkey的类型和生命周期是什么? - 你没有在上面的代码中声明它。为什么你认为这不起作用? -
什么是“SecByteBlock”?什么是“新钥匙”?缺少太多细节。
-
newKey 是 GENERATOR 对象中的私有 SecBlockByte。我不知道你说的一生是什么意思?它似乎不起作用,因为在 DES_EDE3 的相同输入上,当密钥被假定更改时,输出保持不变。我相信 SecBlockByte 是 Crypto++ 中定义的变量类型?
标签: c++ cryptography crypto++