是否有一个简单的C或C ++函数来计算字符串的sha1哈希值?

时间:2011-08-03 22:48:11

标签: c++ encryption hash

  

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

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

6 个答案:

答案 0 :(得分:36)

不是内置的。试试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。如果您要静态链接,则可能需要链接两者。

答案 1 :(得分:7)

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

答案 2 :(得分:2)

以下是一个示例:http://www.codeproject.com/KB/recipes/csha1.aspx#csha1is

此外,这个问题已在this主题上得到解决。他们有一些链接可以提供进一步的帮助。看看吧。

答案 3 :(得分:2)

答案 4 :(得分:0)

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

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

答案 5 :(得分:-2)

您需要使用库。 Boost具有此功能。