再次利用openssl来计算sha1 sha224 sha256 sha384 sha512

骑猪看日落 2022-04-18 05:34 528阅读 0赞

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

  1. 请按照之前博文的介绍配置openssl环境。代码如下:
  2. #include <iostream>#include <openssl/sha.h> #include <openssl/crypto.h> // OPENSSL_cleanse#pragma comment(lib, "libeay32.lib")#pragma comment(lib, "ssleay32.lib") // 在本程序中, 可以注释掉这句using namespace std;const char *orgStr = "hello"; //待哈希的串// 打印前, 有必要转换void printHash(unsigned char *md, int len){ int i = 0; for (i = 0; i < len; i++) { printf("%02x", md[i]); } printf("\n");}void myHash1(){ SHA_CTX c; unsigned char md[SHA_DIGEST_LENGTH]; SHA1((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA_DIGEST_LENGTH); SHA1_Init(&c); SHA1_Update(&c, orgStr, strlen(orgStr)); SHA1_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA_DIGEST_LENGTH);}void myHash224(){ SHA256_CTX c; unsigned char md[SHA224_DIGEST_LENGTH]; SHA224((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA224_DIGEST_LENGTH); SHA224_Init(&c); SHA224_Update(&c, orgStr, strlen(orgStr)); SHA224_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA224_DIGEST_LENGTH);}void myHash256(){ SHA256_CTX c; unsigned char md[SHA256_DIGEST_LENGTH]; SHA256((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA256_DIGEST_LENGTH); SHA256_Init(&c); SHA256_Update(&c, orgStr, strlen(orgStr)); SHA256_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA256_DIGEST_LENGTH);}void myHash384(){ SHA512_CTX c; unsigned char md[SHA384_DIGEST_LENGTH]; SHA384((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA384_DIGEST_LENGTH); SHA384_Init(&c); SHA384_Update(&c, orgStr, strlen(orgStr)); SHA384_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA384_DIGEST_LENGTH);}void myHash512(){ SHA512_CTX c; unsigned char md[SHA512_DIGEST_LENGTH]; SHA512((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA512_DIGEST_LENGTH); SHA512_Init(&c); SHA512_Update(&c, orgStr, strlen(orgStr)); SHA512_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA512_DIGEST_LENGTH);}int main(){ myHash1(); myHash224(); myHash256(); myHash384(); myHash512(); return 0;}
  3. 与其他工具相比, 结果一致。

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,528人围观)

还没有评论,来说两句吧...

相关阅读