#include<stdio.h> #include<evp.h> #include<string.h> #include<windows.h> #include<x509.h> //************************************************* //信息摘要 //************************************************* void tDigest(){ unsigned char md_value[EVP_MAX_MD_SIZE]; //保存输出的摘要值的数组 int md_len,i; EVP_MD_CTX mdctx; char msg1[]="Test Message1"; char msg2[]="Test Message2"; EVP_MD_CTX_init(&mdctx); EVP_DigestInit_ex(&mdctx,EVP_md5(),NULL); EVP_DigestUpdate(&mdctx,msg1,strlen(msg1)); EVP_DigestUpdate(&mdctx,msg2,strlen(msg2)); EVP_DigestFinal_ex(&mdctx,md_value,(unsigned int*)(&md_len)); EVP_MD_CTX_cleanup(&mdctx); printf("原始数据%s和%s的摘要值为:/n",msg1,msg2); for (i=0;i<md_len;i++) { printf("0x%02x ",md_value[i]); } printf("/n"); } int main(){ OpenSSL_add_all_algorithms(); tDigest(); return 0; }