首页 > 其他分享 >OpenSSL测试-SM3

OpenSSL测试-SM3

时间:2024-04-08 09:47:13浏览次数:23  
标签:md mdctx compute MD sm3 SM3 OpenSSL 测试 EVP

OpenSSL测试-SM3 本次作业分值 25 分| 老师 评分   任务详情

0. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
1. 使用OpenSSL的命令计算你的8位学号(数字)的摘要值(SM3),提交截图(5')
2. 使用OpenSSL编程对计算"你的8位学号(数字)"SM3摘要值,提交代码和运行结果截图。(10’)
3. 使用OpenSSL编程对计算内容为"所有同学的8位学号(文本)"的文件的SM3摘要值,提交代码和运行结果截图。(选做(10’))

1.echo -n "20211106" | openssl dgst -sm3

2.vi compute_sm3.c

#include <openssl/evp.h>
#include <stdio.h>
#include <string.h>

int main() {
EVP_MD_CTX *mdctx;
const EVP_MD *md;
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len, i;

OpenSSL_add_all_digests();

md = EVP_sm3();

mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, md, NULL);
EVP_DigestUpdate(mdctx, "20211106", strlen("20211106"));
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
EVP_MD_CTX_free(mdctx);

printf("SM3 Digest: ");
for (i = 0; i < md_len; i++) {
printf("%02x", md_value[i]);
}
printf("\n");

return 0;
}

gcc -o compute_sm3 compute_sm3.c -lcrypto
./compute_sm3

3.for i in {20211101..20211130}; do echo $i >> dates.txt; done

vi compute_file_sm3.c

#include <stdio.h>
#include <openssl/evp.h>
#include <string.h>

int main() {
FILE *f;
EVP_MD_CTX *mdctx;
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len, i;
char data[1024];

OpenSSL_add_all_digests();

mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, EVP_sm3(), NULL);

f = fopen("dates.txt", "r");
if (f == NULL) {
perror("Failed to open file");
return 1;
}
while (fgets(data, 1024, f) != NULL) {
EVP_DigestUpdate(mdctx, data, strlen(data));
}
fclose(f);

EVP_DigestFinal_ex(mdctx, md_value, &md_len);
EVP_MD_CTX_free(mdctx);

printf("SM3 Digest of file: ");
for (i = 0; i < md_len; i++) {
printf("%02x", md_value[i]);
}
printf("\n");

return 0;
}

gcc -o compute_file_sm3 compute_file_sm3.c -lcrypto
./compute_file_sm3

 

标签:md,mdctx,compute,MD,sm3,SM3,OpenSSL,测试,EVP
From: https://www.cnblogs.com/sjd-sr/p/18120431

相关文章

  • OpenSSL测试-SM3
    在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务使用OpenSSL的命令计算你的8位学号(数字)的摘要值(SM3),提交截图(5')使用OpenSSL编程对计算"你的8位学号(数字)"SM3摘要值,提交代码和运行结果截图。(10’)使用OpenSSL编程对计算内容为"所有同学的8位学号(文本)"的文件的......
  • OpenSSL测试-SM3
    使用OpenSSL的命令计算你的8位学号(数字)的摘要值(SM3)使用OpenSSL编程对计算"你的8位学号(数字)"SM3摘要值3.使用OpenSSL编程对计算内容为"所有同学的8位学号(文本)"的文件的SM3摘要值......
  • OpenSSL测试-Base64
    OpenSSL测试-Base64本次作业分值20分|老师评分 任务详情0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务1.使用工具(如bc,计算机器等)把自己学号转化为16进制,提交转化过程和结果截图(2‘)2.使用工具(如echo-e,ultraedit等)把上面转化的结果写入二进......
  • SM3填充
    SM3填充本次作业分值15分|老师评分 任务详情0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务1.使用OpenSSL的命令计算一个小于2048的随机数len,并生成长度为len的一个随机数r,提交截图(5')2.按照SM3的算法要求对r进行填充,提交详细过程和截图。(10’)......
  • 辽宁省第二十一届职业院校技能大赛高职组“软件测试”自动化测试任务要求①
    2024年辽宁省职业院校技能大赛“软件测试”竞赛任务二自动化测试要求一、任务要求题目1:按照以下步骤在PyCharm中进行自动化测试脚本编写并执行。1、设置智能时间等待3秒并将浏览器窗口最大化;2、引入By方法类;3、通过ID属性定位用户名输入框,并输入用户名XTGLY;4、通过NA......
  • 软件测试理论(2)自动化测试
    自动化测试什么时候适用自动化测试?1)可重复的、不知疲倦地运动,对于数据能进行精确的大批量的比较的;2)回归测试3)在机械化的执行和比较测试执行的问题1)自动化测试没有有效的利用,使得手工测试太多。2)测试结果的捕获没有系统性,而且没有查看或调查3)缺陷报告必须......
  • scp小测试
    scp/etc/hostsroot@clone1:etc/hosts点击查看代码[root@master~]#scp/etc/hostsroot@clone1:/etc/hostsTheauthenticityofhost'clone1(192.168.10.11)'can'tbeestablished.ECDSAkeyfingerprintisSHA256:M0el+1DPGcKEb0WRaWYKziDSQZA8x6B/......
  • 2024.1.27c++测试订正代码
    测试订正生成括号题目描述王五是一名数学专业的同学,在课余选修了C++C++C++编程课,现在他能够自己写程序判断......
  • 软件测试最新模型
    软件测试领域随着技术的发展不断演进,新的测试模型和方法不断涌现,以适应不断变化的软件开发需求和提高测试效率。以下是一些最新的软件测试模型:###1.V模型 V模型是瀑布模型的变种,它将测试活动与开发阶段紧密对应。左侧代表开发过程,从需求分析到系统设计、详细设计、编码;右......
  • 人工智能和机器学习(AI/ML)在软件测试中的应用
    人工智能和机器学习(AI/ML)在软件测试中的应用正在逐渐改变传统的测试方法,提高测试效率和质量。以下是AI/ML在测试中的一些关键应用:自动化测试AI可以通过机器学习算法自动识别和执行测试用例,大大提高了测试效率7。AI工具能够学习软件的行为和模式,自动生成测试用例和测试脚本,减......