C++ 加密++;验证大文件签名
我使用此代码使用crypto++验证消息:C++ 加密++;验证大文件签名,c++,crypto++,C++,Crypto++,我使用此代码使用crypto++验证消息: CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::Verifier verifier(key); bool result = verifier.VerifyMessage( (const CryptoPP::byte*)message.data(), message.length(), (const CryptoPP::byte*)signature.data(), signature.le
CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::Verifier verifier(key);
bool result = verifier.VerifyMessage( (const CryptoPP::byte*)message.data(), message.length(), (const CryptoPP::byte*)signature.data(), signature.length() );
CryptoPP::ECDSA::验证器验证器(密钥);
bool result=verifier.VerifyMessage((const-CryptoPP::byte*)message.data(),message.length(),(const-CryptoPP::byte*)signature.data(),signature.length());
现在,我想验证我以前为文件创建的签名。这个文件相当大(GB),我不想将它一块加载到内存中(到消息变量)
crypto++有没有办法验证大文件的签名?此代码满足我的需要:
CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::PublicKey key; key.Load(queue);
CryptoPP::ECDSA<CryptoPP::ECP, CryptoPP::SHA256>::Verifier verifier(key);
CryptoPP::SignatureVerificationFilter verificationFilter(verifier, NULL, CryptoPP::SignatureVerificationFilter::SIGNATURE_AT_BEGIN);
CryptoPP::FileSource fileSource( file, false, new CryptoPP::Redirector(verificationFilter));
CryptoPP::StringSource signatureSource( (const CryptoPP::byte*)signature.data(), signature.length(), false, new CryptoPP::Redirector(verificationFilter));
signatureSource.Pump(signature.length());
fileSource.PumpAll();
return verificationFilter.GetLastResult();
CryptoPP::ECDSA::公钥;密钥加载(队列);
CryptoPP::ECDSA::验证器验证器(密钥);
CryptoPP::SignatureReferenceFilter verificationFilter(验证器,NULL,CryptoPP::SignatureReferenceFilter::SIGNATURE\u在\u开始时);
CryptoPP::FileSource FileSource(file,false,新的CryptoPP::重定向器(verificationFilter));
CryptoPP::StringSource signatureSource((const CryptoPP::byte*)signature.data(),signature.length(),false,new CryptoPP::Redirector(verificationFilter));
signatureSource.Pump(signature.length());
fileSource.PumpAll();
返回verificationFilter.GetLastResult();
为什么不使用sha256
或md5
散列码来验证文件?我想对文件签名,这样就没有人可以修改它。因此,使用文件的散列码就可以了。如果您有文件散列
代码,而某人只修改了文件的位
,则文件的散列
代码将更改。。。实际上,散列
代码是文件的符号。相信我,不对称加密签名是我需要使用的方式。文件和签名来自不安全的环境。如果我只使用散列,攻击者只需提供修改后的文件和重新计算的散列即可。您是否尝试过为FileSource
修改?