gpt4 book ai didi

c++ - 将 SecByteBlock 中的 key 传递给算法?

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:50 24 4
gpt4 key购买 nike

我目前正在从事 Cryptopp 加密项目,需要将 key 传递给 Blowfish 加密算法。

如果我理解正确,我需要编辑这两行:

SecByteBlock key(Blowfish::DEFAULT_KEYLENGTH);
prng.GenerateBlock( key, key.size() );

我的想法是将字符串变量(如 ekey)传递给 SecByteBlock,如下所示:

SecByteBlock key(ekey.data(), ekey.size());

但看起来我走错了路。那么,如何将 key 传递给算法?

最佳答案

此区域中的各种 Crypto++ 对象( block /流密码和模式)采用SecByteBlock。它们都采用 const byte*size_t。来自SymmetricCipher界面。


SecByteBlock key(ekey.data(), ekey.size());

因为你有一个带有datasizeekey,你应该直接使用它:

CBC_Mode< Blowfish >::Encryption enc;
enc.SetKeyWithIV(ekey.data(), ekey.size(), iv.data(), iv.size());

如果您只有一个SecByteBlock,那么类似:

SecByteBlock key(...);
CBC_Mode< Blowfish >::Encryption enc;
enc.SetKeyWithIV(key.data(), key.size(), iv.data(), iv.size());

Crypto++ - Blowfish 上有一个关于 Blowfish 的维基页面。 .

上例中的 CBC 模式仅提供 secret 性。您还应该考虑 Authenticated Encryption提供 secret 性真实性保证的模式。

关于c++ - 将 SecByteBlock 中的 key 传递给算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com