繁体   English   中英

crypto++ 库中的 SHA512 hash 引发异常

[英]SHA512 hash in crypto++ library throws exception

我在 Visual Studio 2010 中构建了 crypto++ 8.4 并制作了一些测试代码。 它在“Win32|Debug”中运行良好,但在“Win32|Release”中 hash.CalculateDigest 会引发异常。

    string source = "I am a programmer.";

    CryptoPP::SHA512 hash;
    CryptoPP::byte digest[CryptoPP::SHA512::DIGESTSIZE];            
    hash.CalculateDigest(digest, (const CryptoPP::byte*)source.c_str(), source.length());

    string result;  
    CryptoPP::HexEncoder encoder;

    encoder.Attach(new CryptoPP::StringSink(result));
    encoder.Put(digest, sizeof(digest));

发生异常的位置如下。 (sha.cpp) 在此处输入图像描述

我做错了什么?

我发现了一个明确的例外情况。 如果 'hash' 被声明为指针而不是局部变量,则不会引发异常。

CryptoPP::SHA512 * hash = new CryptoPP::SHA512;

我不知道为什么会这样,但是对于 SHA512,我怀疑 VS 2010 的 cryptopp 中是否存在 memory 管理问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM