gpt4 book ai didi

c++ - 在 Crypto++ 中将自动播种 PNRG 的输出放入一个字符串中

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:18 24 4
gpt4 key购买 nike

我正在使用 Cryptopp 生成随机字符串。这是代码:

const unsigned int BLOCKSIZE = 16 * 8;
byte pcbScratch[ BLOCKSIZE ];

// Construction
// Using a ANSI approved Cipher
CryptoPP::AutoSeededX917RNG<CryptoPP::DES_EDE3> rng;

rng.GenerateBlock( pcbScratch, BLOCKSIZE );

// Output
std::cout << "The generated random block is:" << std::endl;
string str = "";

for( unsigned int i = 0; i < BLOCKSIZE; i++ )
{
std::cout << "0x" << std::setbase(16) << std::setw(2) << std::setfill('0');
std::cout << static_cast<unsigned int>( pcbScratch[ i ] ) << " ";
str += pcbScratch[i];
}
std::cout << std::endl;
std::cout << str <<std::endl;

我在代码中放入了一个新的变量:string str = ""。然后在 for append 中为每个结果添加字符串的一部分。但是我的输出很脏!我只看到奇怪的 ASCII 字符。如何设置好字符串?

谢谢。

最佳答案

你会想要一些输出编码,例如

  • base64
  • 十六进制

因为您看到的是原始二进制数据,将其解释为文本。随机字符是结果

AFAICT(谷歌)你应该可以使用这样的东西

#include <base64.h>

string base64encoded;
StringSource(str, true, new Base64Encoder(new StringSink(base64encoded)));

关于c++ - 在 Crypto++ 中将自动播种 PNRG 的输出放入一个字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948610/

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