将byte * {aka unsigned char *}'转换为'byte [32] {aka unsigned char [32]}

时间:2016-11-11 23:29:37

标签: c++ c++11 crypto++

我正在使用Crypto++ Salsa20作为我项目的一部分。上面的链接有一个示例代码,用于定义

byte key[32];

所以我有一个64字节的字符串。我从SHA256得到了这个值。基本上它们是十六进制值。所以我相信这可以存储在密钥中。

string hashVal = "b684f0912266e387eded257b8107b6fc65f0ed97773ecb09078c9a8004d08563";

我需要将此值存储到key [32]中。我尽力将字符串转换为键但从未通过。

byte *plaintextBytes = (byte *) hashVal.c_str();
OR
byte *plaintextBytes = new byte[hashVal.length()];
key = passphraseBytes;

任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

使用memcpy:

std::memcpy(key, &hashVal[0], std::min(32, hashVal.size());

这假设您不需要空终止符。