opensslsha1算法源码c++版
#include <iostream>
#include <openssl/sha.h>
#include <openssl/crypto.h> // OPENSSL_cleanse
#pragma comment(lib, "libeay32.lib")
using namespace std;
const char *orgStr = "hello"; //待加密的字符串
void mysh1()
{
SHA_CTX c;//SHA_CTX结构体
unsigned char md[SHA_DIGEST_LENGTH];
SHA1((unsigned char *)orgStr, strlen(orgStr), md); //补位
SHA1_Init(&c); //初始化
SHA1_Update(&c, orgStr, strlen(orgStr)); //进行hash
//SHA1Transform在SHA1_Update中调用,是内部函数,不需要用户调用
SHA1_Final(md, &c);//加密完成
OPENSSL_cleanse(&c, sizeof(c)); //清理结构体
printsha1(md, SHA_DIGEST_LENGTH); //输出密文
}
// 字符串格式化输出
void printsha1(unsigned char *md, int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
printf("%02x", md[i]);
}
printf("\n");
}