再次用openssl求SHA1
2017-09-18 21:26
375 查看
最近, 我没有找到现成的求SHA1的函数, 我需要一行代码调用, 但没有, 那自己来写个吧:
#include <iostream>
#include <algorithm>
#include "openssl/sha.h" // 要有对应的头文件哈, 否则编译不过
using namespace std;
unsigned char char2HexChar(const unsigned char &x)
{
return x > 9 ? (x - 10 + 'A') : x + '0';
}
string getSha1(const string &str)
{
SHA_CTX c;
SHA1_Init(&c);
SHA1_Update(&c, str.c_str(), str.size());
unsigned char szSha1[SHA_DIGEST_LENGTH] = {0};
SHA1_Final(szSha1, &c);
string strSha1;
unsigned char strTmpHex;
for(int i = 0; i < SHA_DIGEST_LENGTH; ++i)
{
strTmpHex = char2HexChar(szSha1[i] / 16);
strSha1.append(1, strTmpHex);
strTmpHex = char2HexChar(szSha1[i] % 16);
strSha1.append(1, strTmpHex);
}
std::transform(strSha1.begin(), strSha1.end(), strSha1.begin(), ::tolower);
return strSha1;
}
int main()
{
cout <<getSha1("123") << endl; // 40bd001563085fc35165329ea1ff5c5ecbdbbeef
return 0;
}
不多说。
#include <iostream>
#include <algorithm>
#include "openssl/sha.h" // 要有对应的头文件哈, 否则编译不过
using namespace std;
unsigned char char2HexChar(const unsigned char &x)
{
return x > 9 ? (x - 10 + 'A') : x + '0';
}
string getSha1(const string &str)
{
SHA_CTX c;
SHA1_Init(&c);
SHA1_Update(&c, str.c_str(), str.size());
unsigned char szSha1[SHA_DIGEST_LENGTH] = {0};
SHA1_Final(szSha1, &c);
string strSha1;
unsigned char strTmpHex;
for(int i = 0; i < SHA_DIGEST_LENGTH; ++i)
{
strTmpHex = char2HexChar(szSha1[i] / 16);
strSha1.append(1, strTmpHex);
strTmpHex = char2HexChar(szSha1[i] % 16);
strSha1.append(1, strTmpHex);
}
std::transform(strSha1.begin(), strSha1.end(), strSha1.begin(), ::tolower);
return strSha1;
}
int main()
{
cout <<getSha1("123") << endl; // 40bd001563085fc35165329ea1ff5c5ecbdbbeef
return 0;
}
不多说。
相关文章推荐
- 再次利用openssl来计算sha1, sha224, sha256, sha384, sha512
- 如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?
- 如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?
- openssl 实现SHA1,DES等加密算法
- C++使用Openssl进行RSA签名(sha1)--完整版
- 巧用OpenSSL完成md2、md4、md5、rmd160、sha、sha1等的验证
- C++使用Openssl进行RSA签名(sha1)--完整版
- openssl rsa sha1
- Openssl-SHA1
- openssl学习篇之base64编码、解码;md5 摘要;sha1摘要;3des加密,解密;rsa算法
- Openssl-SHA1
- Linux C 下使用openssl 进行SHA1加密
- openssl RSA、AES、DES、MD5、SHA1,CA
- openssl evp 哈希算法(md5,sha1,sha256)
- OpenSSL源码中SHA1_Init()的实现在哪里?
- 使用openssl手工生成cod文件的SHA1 hash码
- 利用openssl来计算sha1, sha224, sha256, sha384, sha512
- OPENSSL RSA加密同一程序多次加载密钥会加密解密出错
- openssl 证书
- openssl开源程序dh算法解析之dh_gen.c