20181315王曜人OpenSSL测试-SM3

1. 使用OpenSSL的命令计算你的8位学号的摘要值(SM3)

 

2. 使用OpenSSL编程对计算"你的8位学号"SM3摘要值,提交代码和运行结果截图。

#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>
void tDigest()
{
 unsigned char md_value[EVP_MAX_MD_SIZE]; //保存输出的摘要值的数组
 int md_len, i;
 EVP_MD_CTX *mdctx;       //EVP消息摘要结构体
 char msg1[] = "20181315";    //待计算摘要的消息1 
 
 EVP_MD_CTX_init(&mdctx);     //初始化摘要结构体 
 EVP_DigestInit_ex(&mdctx, EVP_sm3(), NULL); //设置摘要算法和密码算法引擎,这里密码算法使用MD5,算法引擎使用OpenSSL默认引擎即软算法
 EVP_DigestUpdate(&mdctx, msg1, strlen(msg1));//调用摘要UpDate计算msg1的摘要 
 EVP_DigestFinal_ex(&mdctx, md_value, &md_len);//摘要结束,输出摘要值 
 EVP_MD_CTX_cleanup(&mdctx);      //释放内存
 
 printf("%s的摘要值为:\n",msg1);
 for(i = 0; i < md_len; i++) 
 {
  printf("0x%02x ", md_value[i]);
 }
 printf("\n");
}
int main()
{ 
 OpenSSL_add_all_algorithms();
 tDigest();
 return 0;
}

 

posted @ 2021-05-06 15:12  wyrric  阅读(316)  评论(0)    收藏  举报