首页 > 其他分享 >代码

代码

时间:2023-10-19 23:12:34浏览次数:21  
标签:MD mdctx msg1 md 代码 CTX EVP

main.c
#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>
#include <openssl/err.h>
void tDigest(){
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;
EVP_MD_CTX *mdctx;
mdctx = EVP_MD_CTX_new();
char msg1[] = "20201303";
char msg2[] = "ZHANGyibo";
EVP_MD_CTX_init(mdctx);
EVP_DigestInit_ex(mdctx, EVP_sm3(), NULL);
EVP_DigestUpdate(mdctx, msg1, strlen(msg1));
EVP_DigestUpdate(mdctx, msg2, strlen(msg2));
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
EVP_MD_CTX_destroy(mdctx);

printf("Debug:Message1%s and Message2%s digest to:\n",msg1, msg2);
for(int i = 0; i<md_len; i++){

printf("0x%02x ", md_value[i]);
}
printf("\n");
}

int main(){

OpenSSL_add_all_algorithms();
tDigest();
return 0;
}
sm3.c
#include<stdio.h>
#include<string.h>
#include<openssl/evp.h>
#include<openssl/err.h>

void tDigest(){
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;
EVP_MD_CTX *mdctx;
mdctx = EVP_MD_CTX_new();
char msg1[] = "20211122";
char msg2[] = "TANG_jiahao";

EVP_MD_CTX_init(mdctx);
EVP_DigestInit_ex(mdctx, EVP_sm3(),NULL);
EVP_DigestUpdate(mdctx, msg1, strlen(msg1));
EVP_DigestUpdate(mdctx, msg2, strlen(msg2));
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
EVP_MD_CTX_destroy(mdctx);

printf("Debug:Message1%s and Message2%s digest to:\n",msg1, msg2);
for(int i= 0; i<md_len; i++){

printf("0x%02x ", md_value[i]);
}
printf("\n");
}

int main(){
OpenSSL_add_all_algorithms();
tDigest();
return 0;
}

标签:MD,mdctx,msg1,md,代码,CTX,EVP
From: https://www.cnblogs.com/unstoppable2striker/p/17775942.html

相关文章

  • 如何保护价值上千万的Node.js源代码?
    如何保护价值上千万的Node.js源代码?https://zhuanlan.zhihu.com/p/843864561|0一个强大的JS混淆器。github.com/javascript-obfuscator/javascript-obfuscator2|0一套JS代码安全问题解决方案。www.jshaman.com3|0一个极简的Node.js字节码编译器。github.com/OsamaAbbas/byte......
  • 一个更复杂的 PHP 代码示例,我将展示一个购物车系统的基本实现,它包括商品类、购物车类
    一个更复杂的PHP代码示例,我将展示一个购物车系统的基本实现,它包括商品类、购物车类和一些基本的操作方法。<?php//定义商品类classProduct{private$name;private$price;publicfunction__construct($name,$price){$this->name=$name;$this->pri......
  • 学习笔记6 截图+代码
    一、苏格拉底挑战二、遇见的问题三、实践和代码#include<stdio.h>#include<stdlib.h>#include<unistd.h>intmain(){char*programPath="/path/to/your/program";//指定要执行的程序的路径char*constargv[]={programPath,NULL};......
  • 实验2 代码
    #include<stdio.h>#include<string.h>#include<openssl/evp.h>#include<openssl/err.h>voidtDigest(){   unsignedcharmd_value[EVP_MAX_MD_SIZE];   unsignedintmd_len;   EVP_MD_CTX*mdctx;   mdctx=EVP_MD_CTX_new();   charmsg......
  • 开源版本Disruptor代码解读记录
    01disruptor实现原理disruptor是一种基于共享内存的进程间通信方式;接下来我们对该开源代码进行解读环形队列设计原理使用环形队列,实际上就是在堆上申请的一个大小为cap的数组,要求队列大小为2的N次方,为了满足位运算,快速计算出索引index(比取模的速度快)。对该数组的访问将由2个索......
  • CH32F系列MCU代码在SRAM中运行配置方法
    第一种:使用Keil仿真的方式。因SRAM启动与FLASH无关,在SRAM中运行,断电后数据丢失,故在keil下仅用于仿真。有四个注意事项:1)、BOOT0、BOOT1都需要接高电平,从RAM启动;2)、在Debug选项中,InitializationFile选项加载SRAM.INI文件;3)、FLashDownload界面中算法文件起始地址修改成RAM的起始......
  • git 统计代码行数
    统计指定分支下的所有作者的代码数目gitlog--format='%aN'|sort-u|whilereadname;doecho-en"$name\t";gitlog--author="$name"--pretty=tformat:--numstat|awk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf"adde......
  • 无代码玩转web UI自动化
    可以直接进入官网下载开源版或点击右上角体验企业版体验RunnerGoUI自动化平台RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂......
  • 无代码玩转web UI自动化
    可以直接进入官网下载开源版或点击右上角体验企业版体验 RunnerGoUI自动化平台RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队......
  • 好用的代码高亮插件
    获取地址:Download▲Prism(prismjs.com)使用方法:<preclass="line-numbers"><codeclass="language-Python">deftest():<br>    print("123")</code></pre>......