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

OpenSSL测试-HMAC

时间:2024-04-29 09:47:34浏览次数:17  
标签:MD key ctx OpenSSL 测试 EVP HMAC digest

1 在openEuler(推荐)或Ubuntu中,使用OpenSSL命令行工具,对消息“Hello, 你的姓名学号!”使用HMAC-SM3进行验证。密钥为随机数,自己生成。提交命令行操作过程截图和结果。
2 使用C语言和OpenSSL库,在openEuler或Ubuntu上编写程序对字符串“Hello, 你的姓名学号!”进行HMAC-SM3加密。密钥同上。提交完整代码和程序运行结果截图以及两次结果的对比。

include <stdio.h>

include <string.h>

include <openssl/evp.h>

int main() {
const char *message = "Hello, huyujia20211211";
const char *key_file = "key.txt";
unsigned char key[16];
FILE *fp;
EVP_MD_CTX *ctx;
const EVP_MD *md;
unsigned char digest[EVP_MAX_MD_SIZE];
unsigned int digest_len;

// 读取密钥文件
fp = fopen(key_file, "r");
fread(key, 1, 16, fp);
fclose(fp);

// 初始化HMAC上下文
ctx = EVP_MD_CTX_new();
md = EVP_sm3();

// 执行HMAC计算
EVP_DigestInit_ex(ctx, md, NULL);
EVP_DigestSignInit(ctx, NULL, md, NULL, key);
EVP_DigestSignUpdate(ctx, message, strlen(message));
EVP_DigestSignFinal(ctx, digest, &digest_len);

// 打印加密结果
printf("HMAC-SM3: ");
for (int i = 0; i < digest_len; i++) {
    printf("%02x", digest[i]);
}
printf("\n");

// 释放资源
EVP_MD_CTX_free(ctx);

return 0;

}
3 使用龙脉智能钥匙完成2的内容,提交完整代码和程序运行结果截图以及两次结果的对比。

标签:MD,key,ctx,OpenSSL,测试,EVP,HMAC,digest
From: https://www.cnblogs.com/yogahuu/p/18165010

相关文章

  • hmac测试
    openssl命令:生成hmac:验证:C语言代码实现:代码如下: `#include#include#include#includeintmain(){//这个例子中,我们将随机生成一个密钥unsignedcharkey[EVP_MAX_MD_SIZE];intkey_len=32;//OpenSSL函数RAND_bytes用于生成强随机数if(!RAND_bytes(......
  • 测试数据不再难,人工智能批量生成给你用!
    简介测试数据是指一组专注于为测试服务的数据,既可以作为功能的输入去验证输出,也可以去触发各类异常场景。测试数据的设计尤为重要,等价类、边界值、正交法等测试用例设计方法都是为了更全面的设计对应的测试数据集。实践演练在批量生成测试数据中,我们需要明确数据的类型、格式......
  • 自动化测试数据生成:Asp.Net Core单元测试利器AutoFixture详解
    引言在我们之前的文章中介绍过使用Bogus生成模拟测试数据,今天来讲解一下功能更加强大自动生成测试数据的工具的库"AutoFixture"。什么是AutoFixture?AutoFixture是一个针对.NET的开源库,旨在最大程度地减少单元测试中的“安排(Arrange)”阶段,以提高可维护性。它的主要目标是让......
  • OpenSSL测试-HMAC
    ......
  • 0429测试2
    1.命令行操作过程截图和结果2.完整代码和程序运行结果截图以及两次结果的对比#include<stdio.h>#include<openssl/hmac.h>#include<openssl/evp.h>#include<openssl/rand.h>intmain(){//要加密的字符串chardata[]="Hello,苗靖章20211125!";unsi......
  • OpenSSL测试-HMAC
    1在openEuler(推荐)或Ubuntu中,使用OpenSSL命令行工具,对消息“Hello,你的姓名学号!”使用HMAC-SM3进行验证。密钥为随机数,自己生成。提交命令行操作过程截图和结果。 2使用C语言和OpenSSL库,在openEuler或Ubuntu上编写程序对字符串“Hello,你的姓名学号!”进行HMAC-SM3加密。密......
  • OpenSSL测试-SM4
    任务详情0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务1.使用OpenSSL的命令对你的8位学号(数字)进行加密解密,密钥的前8个字节为你的8位学号,提交过程截图(5')2.使用OpenSSL编程对对"你的8位学号(数字)"进行加密解密,提交代码和运行结果截图。(10’)3.使用龙脉智能......
  • OpenSSL测试-SM4
    0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务1.使用OpenSSL的命令对你的8位学号(数字)进行加密解密,密钥的前8个字节为你的8位学号,提交过程截图(5') 2.使用OpenSSL编程对对"你的8位学号(数字)"进行加密解密,提交代码和运行结果截图。(10’) #include<openssl......
  • SM4测试
    SM4代码如下: ``#include<openssl/evp.h>include<stdio.h>include<string.h>intmain(){EVP_CIPHER_CTX*ctx;intlen;intciphertext_len;unsignedchar*plaintext=(unsignedchar*)"20211122";unsignedcharkey[]="20211......
  • 自动化测试框架-数据读取
     1.准备数据:数据格式为{json},放在json文件内,例如这样:   2.工具类:读取.json文件,保存在Map<testCaseName,JSONObject>内publicstaticMap<String,JSONObject>jsonToSearchFilter(StringfileName)throwsIOException{Map<String,JSONObject>result=ne......