【问题标题】:Wrong SHA1 in c++ OPENSSLc++ OPENSSL中错误的SHA1
【发布时间】:2021-05-09 10:34:09
【问题描述】:

谁能告诉我我做错了什么?我正在尝试为“12345”打印 SHA1 哈希,但它显示错误,我无法弄清楚代码中的问题是什么

int main() {

string smth = "12345";

unsigned char hash[SHA_DIGEST_LENGTH];
SHA_CTX sha1;
SHA_Init(&sha1);
SHA_Update(&sha1, smth.c_str(), smth.length());
SHA_Final(hash, &sha1);
stringstream ss;

for (int i = 0; i < SHA_DIGEST_LENGTH; i++)
{
    ss << hex << setw(2) << setfill('0') << (int)hash[i];
}
cout << ss.str() << endl; }

我得到的哈希值:

f7e507be49c187214406fd2556302ba47d535780

正确的哈希:

8cb2237d0679ca88db6464eac60da96345513964

【问题讨论】:

    标签: c++ openssl sha1 sha


    【解决方案1】:

    SHA_* 函数计算 SHA-0 和。用 SHA1_* 替代方法替换所有函数以计算 SHA-1。

    【讨论】:

    • 该死的我现在感觉很笨——但是当你不熟悉某些东西时这是可以预料的。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2015-02-21
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多