如何在 cryptopp 的 C++ 中使用 sha256
How to use sha256 in c++ from cryptopp
首先感谢您阅读我的问题。
我正在尝试重现我在 python 中收到的内容。所以基本上我有两个数字,我试图用它们来散列。但是对于 crypto++ 库,我有点困惑。
更新和计算部分的使用方法基本不懂
我的codes
是
vHash(uint8_t *X,uint8_t *Y)
{
CryptoPP::SHA256 hash;
byte digest[ CryptoPP::SHA256::DIGESTSIZE ];
hash.CalculateDigest( digest, (byte*) X, 32 );
hash.CalculateDigest( digest, (byte*) y, 32 );
CryptoPP::HexEncoder encoder;
std::string output;
encoder.Attach( new CryptoPP::StringSink( output ) );
encoder.Put( digest, sizeof(digest) );
encoder.MessageEnd();
std::cout << output << std::endl;
}
从主要功能我正在通过
std::string expTA = "67950298974562277680845951570422977358023181305748156081323854942335052287978";
std::string expTB = "43115149028018416730354385099369257625840461867770683759285196743048111210215";
HexDecoder decoder;
decoder.Put((byte*)&exp1[0], expTA.size());
decoder.MessageEnd();
Integer testA;
testA.Decode(decoder, decoder.MaxRetrievable());
HexDecoder decoder1;
decoder1.Put((byte*)&exp1[0], expTB.size());
decoder1.MessageEnd();
Integer testB;
testB.Decode(decoder1, decoder1.MaxRetrievable());
vHash((uint8_t *)&(testA),(uint8_t *)&(testB));
我找到了解决方案,我将其粘贴在这里,以便它可能对其他人有用。
为了计算正确的sha256先更新,然后按照下面的方式调用计算函数。
hash.Update((byte*) X, 32 );
hash.CalculateDigest( digest, (byte*) y, 32 );
这是可选的,但为了确保我们正在比较的是什么,请务必输入整数值或十六进制值,您的答案将以这种方式生成。即 std::string expTA.
首先感谢您阅读我的问题。
我正在尝试重现我在 python 中收到的内容。所以基本上我有两个数字,我试图用它们来散列。但是对于 crypto++ 库,我有点困惑。
更新和计算部分的使用方法基本不懂
我的codes
是
vHash(uint8_t *X,uint8_t *Y)
{
CryptoPP::SHA256 hash;
byte digest[ CryptoPP::SHA256::DIGESTSIZE ];
hash.CalculateDigest( digest, (byte*) X, 32 );
hash.CalculateDigest( digest, (byte*) y, 32 );
CryptoPP::HexEncoder encoder;
std::string output;
encoder.Attach( new CryptoPP::StringSink( output ) );
encoder.Put( digest, sizeof(digest) );
encoder.MessageEnd();
std::cout << output << std::endl;
}
从主要功能我正在通过
std::string expTA = "67950298974562277680845951570422977358023181305748156081323854942335052287978";
std::string expTB = "43115149028018416730354385099369257625840461867770683759285196743048111210215";
HexDecoder decoder;
decoder.Put((byte*)&exp1[0], expTA.size());
decoder.MessageEnd();
Integer testA;
testA.Decode(decoder, decoder.MaxRetrievable());
HexDecoder decoder1;
decoder1.Put((byte*)&exp1[0], expTB.size());
decoder1.MessageEnd();
Integer testB;
testB.Decode(decoder1, decoder1.MaxRetrievable());
vHash((uint8_t *)&(testA),(uint8_t *)&(testB));
我找到了解决方案,我将其粘贴在这里,以便它可能对其他人有用。
为了计算正确的sha256先更新,然后按照下面的方式调用计算函数。
hash.Update((byte*) X, 32 );
hash.CalculateDigest( digest, (byte*) y, 32 );
这是可选的,但为了确保我们正在比较的是什么,请务必输入整数值或十六进制值,您的答案将以这种方式生成。即 std::string expTA.