c – 使用加密解码十六进制编码值

我是Cryptopp的新手,我想对文本和解码进行编码以了解它是如何工作的.
编码部分工作正常,但我无法解码字符串?始终解码的字符串为空.我在Crypto邮件中询问过,有人说这段代码应该有效,但事实并非如此.

我想知道出了什么问题.
作为加密新手,我看不出有什么问题.

编码:

std::string encoded = m_pkey->GetValue().ToStdString();//here under debugger its ok
std::string decoded;
CryptoPP::StringSource(encoded, true, new CryptoPP::HexDecoder(new CryptoPP::StringSink(decoded)));

解决方法:

Crypto wiki有很多例子,包括使用HexEncoderHexDecoder类.

来自维基:

byte decoded[] = { 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88, 
                   0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00 };
string encoded;

StringSource ss(decoded, sizeof(decoded), true,
    new HexEncoder(
        new StringSink(encoded)
    ) // HexEncoder
); // StringSource

cout << encoded << endl;
...

$./cryptopp-test.exe
FFEEDDCCBBAA99887766554433221100
上一篇:攻防世界 crypto 幂数加密


下一篇:虚拟专用网络***技术