【问题标题】:Is there a simple C or C++ function that calculates the sha1 hash of a string? [duplicate]是否有一个简单的 C 或 C++ 函数来计算字符串的 sha1 哈希? [复制]
【发布时间】:2011-10-19 12:56:31
【问题描述】:

可能重复:
sha1 function in cpp (C++)Hi,

我只是在寻找一个计算字符串的 sha1 哈希并返回结果的函数。

【问题讨论】:

  • C(以及在较小程度上,C++)并不以拥有大量内置功能而闻名。您可能会找到一个为此目的具有一个或多个函数的库。您使用哪种语言?
  • ...我在这里,直接来自谷歌搜索!

标签: c++ encryption hash


【解决方案1】:

CryptoPP 是一个很棒的 C++ 加密函数库。它有一种计算 SHA1 摘要的方法。请参阅散列函数示例here

【讨论】:

    【解决方案2】:

    您需要使用库。 Boost 有这个功能。

    【讨论】:

    • 您能否链接到您声称存在的库,或者至少提及该库的名称,而不是仅仅链接到 Boost 主页?
    【解决方案3】:

    这是一个例子:http://www.codeproject.com/KB/recipes/csha1.aspx#csha1is

    此外,this 线程已经解决了这个问题。他们有一个链接以获得进一步的帮助。看看吧。

    【讨论】:

      【解决方案4】:

      查看this post on Ubuntu Forums。他们建议查看libcrypt

      还有一个实现here,但我不确定许可证是什么。

      【讨论】:

        【解决方案5】:

        【讨论】:

          【解决方案6】:

          不是内置的。试试 openssl 的加密库。

          (https://www.openssl.org/source/)

          (https://github.com/openssl/openssl/blob/master/include/openssl/sha.h)

          (https://www.openssl.org/docs/man1.1.0/crypto/SHA1.html)

          #include <openssl/sha.h>
          
          int main()
          {  
            const unsigned char str[] = "Original String";
            unsigned char hash[SHA_DIGEST_LENGTH]; // == 20
          
            SHA1(str, sizeof(str) - 1, hash);
          
            // do some stuff with the hash
          
            return 0;
          }
          

          -lssl 链接,这将暗示-lcrypto。如果您是静态链接,则可能需要同时链接两者。

          【讨论】:

          • 仅供参考:需要与-lcrypto 链接才能编译。例如。 gcc example.c -lcrypto.
          • 另外:在基于 Debian 的 GNU/Linuxes 上安装的软件包是 libssl-dev
          猜你喜欢
          • 1970-01-01
          • 2013-05-11
          • 2014-09-15
          • 2021-02-25
          • 1970-01-01
          • 2011-01-28
          • 1970-01-01
          • 2020-11-01
          • 2018-07-16
          相关资源
          最近更新 更多