当前位置: 首页 > news >正文

openssl编程之sm3哈希代码示例


int openssl_sm3() {EVP_MD_CTX* mdctx;const EVP_MD* mdfunc;unsigned char md_value[EVP_MAX_MD_SIZE];unsigned int md_len, i;// 初始化MD5函数mdfunc = EVP_sm3();if (!mdfunc) {printf("sm3 algorithm not available\n");return -1;}// 创建MD5上下文mdctx = EVP_MD_CTX_new();if (!mdctx) {printf("Memory allocation failure\n");return -1;}// 初始化MD5上下文,指定使用的摘要算法if (1 != EVP_DigestInit_ex(mdctx, mdfunc, NULL)) {printf("Digest initialization failed\n");EVP_MD_CTX_free(mdctx);return -1;}// 提供数据以进行摘要计算if (1 != EVP_DigestUpdate(mdctx, "123", strlen("123"))) {printf("Digest update failed\n");EVP_MD_CTX_free(mdctx);return -1;}// 完成摘要计算if (1 != EVP_DigestFinal_ex(mdctx, md_value, &md_len)) {printf("Digest finalization failed\n");EVP_MD_CTX_free(mdctx);return -1;}// 清理资源EVP_MD_CTX_free(mdctx);printf("sm3: ");for (int i = 0; i < md_len; i++) {printf("%02x", md_value[i]);}printf("\n");return 0;
}
http://www.zskr.cn/news/1687.html

相关文章:

  • timescaledb在ubuntu上的高可用部署步骤记录
  • Docker存储
  • SAC In JAX【个人记录向】
  • 1.2 亿篇论文数据集,多学科学术语料库,涵盖医学、化学、生物学、人文、物理、工程、数学、生态、经济与计算机科学,用于 NLP、知识图谱与大模型训练
  • Putty 工具集 plink和pscp使用
  • MyEMS:开源驱动下的企业能源管理革新者 —— 从技术架构到 “双碳” 落地的实践之路
  • 多进程、多线程、分布式锁
  • 介绍Activiti BPMN visualizer插件的图形界面
  • NvM代码级别的调用
  • ECT-OS-JiuHuaShan 与经典/量子计算模型存在根本性范式断裂
  • redis非阻塞锁
  • Appium元素等待
  • DropWizard-REST-Web-服务指南-全-
  • Spring Boot如何启动嵌入式Tomcat?
  • sql随机查看数据
  • 83、SpringMVC全局异常处理和数据校验
  • 依然是dots的介绍视频
  • ​​射频线:无线世界的隐形动脉
  • kettle基本操作2:使用日期字段分批次同步数据
  • 麒麟系统kylinServerV10中通过docker安装ActiveMQ
  • 聊一聊 .NET 某跨境物流系统 内存暴涨分析
  • 8 将GitHub远程仓库修改为ssh
  • Symfony学习笔记 - Symfony Documentation - Utilities(1)
  • Vue3项目开发专题精讲【左扬精讲】—— 商城网站系统(基于 Vue3 与 TypeScript 技术栈的企业网站系统开发实战)
  • $\LaTeX{}$之快速编译和删除中间文件 - Invinc
  • $\LaTeX{}$之minted使用 - Invinc
  • Codeforces Round 1049 (Div. 2) 部分题解
  • 【知识管理工具分享】基于AI搭建个人法律知识库:我的PandaWiki实践心得
  • 像元大小(例如 1.4 m 1.4 m)具体的含义和用途
  • Codeforces Round 1049 (Div. 2) 一些 idea