cryptopp正确资势

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cryptopp正确资势相关的知识,希望对你有一定的参考价值。

参考技术A Crypto++是一个C++的加密库,支持常用的算法如:AES、DES、RSA、DSA等。它支持多种系统,如Windows、 Linux、android等,可以非常方便地实现对敏感信息的安全存储和传输。

为什么我没有让sha256正确?

我正在使用crypto ++库进行一些练习。我期待与从shell调用的sha256sum工具相同的输出。

// typedef unsigned char byte;
byte out[CryptoPP::SHA256::DIGESTSIZE];
byte in=65;  // 'A'
CryptoPP::SHA256().CalculateDigest(out, &in, 1);
for(int i=0; i < CryptoPP::SHA256::DIGESTSIZE; i++)
    std::cout << std::hex << (int)out[i];
std::cout << std::endl;

559اياد08264دخمسخدصصح18سددخبدد49572يضع4فخخصص0ييفع1اضضا08فدففد

$ echo A | sha256sum

06f961b802bc46ee168555f066d28f4f0e9afdf3f88174c1ee6f9de004fc30a0

为什么两者不相等?

答案

echo附加一个换行符,所以你要比较不同字符串的哈希值。使用printf代替:

$ printf 'A' | sha256sum
559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd  -
$ printf 'A
' | sha256sum
06f961b802bc46ee168555f066d28f4f0e9afdf3f88174c1ee6f9de004fc30a0  - 
另一答案

在命令行中,您将校验和A +换行符。

如果你的unix版本支持它,使用echo -n回声而不添加换行符;

$ echo -n A | sha256sum
559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd  -

以上是关于cryptopp正确资势的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Crypto++ ECDSA 中的签名体中获取签名长度

为什么我没有让sha256正确?

如何将 Crypto++ 包含到 VS 项目中

cryptopp 加密库的安装

在 Crypto++ 库中找不到 hkdf.h

crypt哪个库linux