-
在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
-
使用OpenSSL的命令计算你的8位学号(数字)的摘要值(SM3),提交截图(5')
-
使用OpenSSL编程对计算"你的8位学号(数字)"SM3摘要值,提交代码和运行结果截图。(10’)
-
使用OpenSSL编程对计算内容为"所有同学的8位学号(文本)"的文件的SM3摘要值,提交代码和运行结果截图。(选做(10’))
2.代码:
include <stdio.h>
include <openssl/evp.h>
include <openssl/sm3.h>
include <string.h>
int main() {
// 要计算摘要的数据
unsigned char data[] = "20211125";
unsigned char md[SM3_DIGEST_LENGTH]; // 用于存储摘要的数组
unsigned int md_len; // 摘要的长度
// 创建摘要上下文
EVP_MD_CTX* mdctx = EVP_MD_CTX_new();
// 初始化摘要计算(指定SM3算法)
EVP_DigestInit_ex(mdctx, EVP_sm3(), NULL);
// 提供数据
EVP_DigestUpdate(mdctx, data, strlen((char *)data));
// 获取计算的摘要
EVP_DigestFinal_ex(mdctx, md, &md_len);
// 清理上下文
EVP_MD_CTX_free(mdctx);
printf("SM3 Digest: ");
for(unsigned int i = 0; i < md_len; i++) {
printf("%02x", md[i]);
}
printf("\n");
return 0;
}
标签:md,mdctx,摘要,SM3,OpenSSL,测试,EVP From: https://www.cnblogs.com/20211125mjz/p/18120408