首页 > 编程语言 ># 密码引擎-4-国䀄算法交叉测试

# 密码引擎-4-国䀄算法交叉测试

时间:2023-04-16 18:24:49浏览次数:34  
标签:openssl 交叉 SM2 OpenSSL pem 算法 引擎 Ubuntu

任务详情

  1. 2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名
  2. 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图
  3. 在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)
  4. 在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSL SM2算法计算Hash值的签名,用龙脉eKey进行验签,提交代码和运行结果截图
  5. 加分项:在Windows中重现上述过程

任务过程

1、2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名

image-20230416174441141

2 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图

image-20230416175139579

2 在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)

在安装了正确版本的openssl之后,下面就是利用openssl自带的命令生成SM2公私钥对了:

1.创建EC参数和原始私钥文件:

image-20230416175227924

生成完成后可以查看一下EC私钥信息:

image-20230416175300306

验证一下参数是否正确:

openssl ecparam -in ec_param.pem -check

image-20230416175347589

2.将原始的私钥文件,转换为pkcs8格式:
openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out pri_key_pkcs8.pem

image-20230416175424307

3.利用原始的私钥,生成对应的公钥:
openssl ec -in ec_param.pem -pubout -out pub_key.pem
至此SM2的秘钥对已经生成结束,pri_key_pkcs8.pem是SM2私钥,而pub_key.pem是公钥。

image-20230416175604498

3.在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSL SM2算法计算Hash值的签名,用龙脉eKey进行验签

image-20230416175728687

image-20230416180152198

image-20230416180539263

在windows实现(加分作业)

image-20230416181448827

image-20230416181659283

image-20230416181716215

image-20230416181747718

image-20230416181806466

image-20230416181828204

image-20230416182033359

image-20230416182150674

image-20230416182222198

标签:openssl,交叉,SM2,OpenSSL,pem,算法,引擎,Ubuntu
From: https://www.cnblogs.com/lyxhhz/p/17323754.html

相关文章

  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之001 week01 02-01 什么是算法?
    1、什么是算法?为了明确什么是算法,我们会从简单的查找功能开始讲起。查找其实一个一个非常简单的算法,但我们会为这个查找功能的算法做如下工作:让查找的功能适应更多的数据类型通过查找的例子讲解如何编写正确的程序?为查找算法性能测试对一些常见算法做复杂度分析2、定义......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之002 week01 02-02 线性查找法
    1、线性查找法什么是线性查找法?举例:在一沓试卷中,找到属于自己的那张试卷。第1张:不是第2张:不是第3张:不是……第n张:是,找到了!第n+1张:不找了……这个解决问题的思路和过程体现就是线性查找法的思想。2、线性查找法思路梳理线性查找法,就是在线性的数据结构中来完成。例......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找
    1、算法描述在数组中逐个查找元素,即遍历。2、思路原理如算法描述,基本是最简单的代码块了,没有什么额外的原理。3、初步的代码实现线性查找法初步的代码实现:packagecom.mosesmin.datastructure.week01.chap02;/***@Misson&Goal代码以交朋友、传福音*@ClassNameLinea......
  • 搜索引擎语法
     1、介绍一般,搜索引擎支持高级搜索语法。这里以百度https://www.baidu.com/为例。2、高级搜索页https://www.baidu.com/gaoji/advanced.html通过该页面,填写表单,进行相关配置可以实现高级搜索功能如果有多个选项,通过空格进行分隔3、高级搜索语法根据高级搜索页配置后的......
  • 由数据范围反推算法复杂度以及算法内容
    一般ACM时间限制是1-2秒这种情况下,c++代码操作次数控制在1e7~1e8下面给出在不同数据范围下,代码时间复杂度和算法如何选择1.n<=30,指数级别,dfs+剪枝,状态压缩dp2.n<=100=>O(n3),floyd,dp,高斯消元3.n<=1000=>O(n2),O(n2logn),dp,二分,朴素版Dijkstra,朴素版Prim、Bellman-Ford4.......
  • 【LBLD】田忌赛马背后的算法决策
    田忌赛马背后的算法决策870.优势洗牌classSolution{public:vector<int>advantageCount(vector<int>&nums1,vector<int>&nums2){intn=nums1.size();priority_queue<pair<int,int>,vector<pair<int,int>&......
  • 存储引擎-MyISAM和Memory
    存储引擎特点:MyISAM:是mysql早期的默认存储引擎特点:1.不支持事务,不支持外键 2.支持表锁,不支持行锁 3.访问速度快文件:xxx.sdi:存储表结构信息 xxx.MYD:存储数据 xxx.MYI:存储索引 Memory:Memory引擎的表数据是存储在内存中的,由于受到硬件问题,或断电问题的影响,只能将......
  • Dijkstra算法求最短路
    一、Dijkstra 只适用于单源最短路中所有边权都是正数的情况二、存储方式1、稠密图用邻接矩阵2、稀疏图用邻接表三、算法实现用一个dist数组保存源点到其余各个节点的距离,dist[i]表示源点到节点i的距离。将dist数组赋值为正无穷,dist[1]=0用......
  • 排序算法-归并排序
    归并排序MergeSort1.MergeSort介绍MergeSort是利用归并的思想实现的排序算法,该算法采用经典的分治策略(divide-and-conquer),是一种稳定的排序算法。分治法是将问题分(divide)为一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各个答案“修补”在一起,即分而治之......
  • 算法-二叉树的构造
    namespaceBinary;publicclassBinaryTree{publicNode<char>Head{get;privateset;}privatestringcStr{get;set;}publicBinaryTree(stringconstructStr){this.cStr=constructStr;th......