基于OpenSSL的多种加解密算法实现方法及系统与流程
未命名
08-29
阅读:88
评论:0

基于openssl的多种加解密算法实现方法及系统
技术领域
1.本发明涉及加解密算法领域,尤其涉及一种基于openssl的多种加解密算法实现方法及系统。
背景技术:
2.作为信息安全领域的基石,数据加密算法不可缺少,1949年以前,早期的数据加密技术简单,复杂程度不高,安全性较低,大部分都是一些具有艺术特征的字谜,因此这个时期的密码被称为古典密码,随着工业革命的到来和二次世界大战的爆发,数据加密技术有了突破性的发展,通过密码算法或者机械地加密设备,使明文转变为密文,1976至今,美国密码学专家狄匪和赫尔曼在1976年提出公开密钥密码体制的概念,是现代密码学的重大发明,也将密码学提供了全新的方向,数据加密的过程就是通过加密系统将明文,按照加密算法将明文改变成密文,数据加密技术主要分为数据传输加密和数据存储加密,数据传输加密技术主要是对数据传输过程中的数据流进行加密,例如:链路加密、节点加、端到端加密三种方式。而存储加密的加密算法就有很多种,目前最普遍使用的算法有des算法、rsa算法、pgp算法等,直到目前为止,加密技术发展已经有了相当成熟的各种国际加密安全算法,无论何种加密方式,”加密最终的目的就是,不能让发送方和接收方以外的其他第三方明白两者之间传送的数据的意义。”。
3.但是目前的加解密算法输出编码单一,无法满足多类用户的需求,且加解密运算中的ecc签名验签无法进行16进制公私钥的签名验签。因此,加解密算法所适应的数据格式较为单一。
技术实现要素:
4.为了解决上述问题,本发明提供了一种基于openssl的多种加解密算法实现方法及系统,可以提高加解密算法所适应的数据格式多样性。
5.第一方面,本发明提供了一种基于openssl的多种加解密算法实现方法,包括:
6.构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;
7.基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;
8.构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;
9.利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;
10.在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;
11.基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
12.在第一方面的一种可能实现方式中,所述基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,包括:
13.将所述输入私钥的格式转化为目标格式,得到目标格式私钥;
14.查询所述目标格式私钥的私钥曲线格式;
15.基于所述私钥曲线格式,确定所述目标格式私钥的私钥头部字符串与私钥中间字符串;
16.构建所述目标格式私钥的虚拟公钥;
17.拼接所述私钥头部字符串、所述目标格式私钥、所述私钥中间字符串及所述虚拟公钥,得到所述最终私钥。
18.在第一方面的一种可能实现方式中,所述构建所述目标格式私钥的虚拟公钥,包括:
19.获取加解密平台的调用方法与动态链接库,利用所述调用方法调用所述动态链接库的公钥接口;
20.基于所述目标格式私钥,利用被调用的公钥接口构建所述虚拟公钥。
21.在第一方面的一种可能实现方式中,所述基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥,包括:
22.将所述输入公钥的格式转化为目标格式,得到目标格式公钥;
23.查询所述目标格式公钥的公钥曲线格式;
24.基于所述公钥曲线格式,确定所述目标格式公钥的公钥头部字符串与公钥中间字符串;
25.在所述加解密平台的动态链接库中查询所述目标格式公钥的拼接方式;
26.根据所述拼接方式,拼接所述钥头部字符串、所述目标格式公钥及所述公钥中间字符串,得到所述最终公钥。
27.在第一方面的一种可能实现方式中,所述构建所述待加密文本的哈希加密文本,包括:
28.计算所述待加密文本的哈希加密字符;
29.将所述哈希加密字符转换为加密字节流;
30.利用加解密平台的字节服务端的编码转换器对所述加密字节流进行输出格式编码,得到包含多种编码输出格式的哈希加密文本。
31.在第一方面的一种可能实现方式中,所述对所述待加密文本进行文本对称加密,得到对称加密文本,包括:
32.在所述待加密文本的加密类型为第一加密类型时,利用下述格式构建所述待加密文本的密钥方法:
33.myadddii.aes_set_encrypt_key(_key.buffer,bits,aes_key_pointer)
34.其中,aes_key_pointer表示所述密钥方法,aes加密方式,myadddii表示c++的dll
名称,aes_set_encrypt为动态链接库openssl导出的接口方法,_key.buffer代表密钥字节流,bits代表当前密钥位数;
35.选取所述待加密文本的加密填充类型;
36.基于所述第一加密类型、所述加密填充类型,利用所述密钥方法对所述待加密文本进行文本第一加密,得到第一加密文本;
37.在所述待加密文本的加密类型为第二加密类型时,确定所述待加密文本的符合预设格式的信息价值;
38.利用所述信息价值与所述第二加密类型对所述待加密文本进行文本第二加密,得到第二加密文本;
39.对所述第一加密文本与所述第二加密文本进行输出格式编码,得到包含多种编码输出格式的第一加密文本与第二加密文本,并综合所述包含多种编码输出格式的第一加密文本与第二加密文本确定所述对称加密文本。
40.在第一方面的一种可能实现方式中,所述利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,包括:
41.对所述哈希加密文本进行目标格式转换,得到目标格式文本;
42.计算所述目标格式文本的哈希摘要值;
43.利用所述最终私钥对所述哈希摘要值进行加密,得到所述签名文本。
44.在第一方面的一种可能实现方式中,所述基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果,包括:
45.利用所述最终公钥对所述签名文本进行文本解密,得到解密摘要值;
46.获取所述哈希加密文本对应的计算所述哈希摘要时的哈希函数;
47.利用所述哈希函数计算所述哈希加密文本的验证哈希摘要值;
48.检验所述解密摘要值与所述验证哈希摘要值是否一致;
49.在所述解密摘要值与所述验证哈希摘要值一致时,将签名验签成功作为所述签名验签结果;
50.在所述解密摘要值与所述验证哈希摘要值不一致时,将签名验签失败作为所述签名验签结果。
51.在第一方面的一种可能实现方式中,所述基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,包括:
52.在所述签名验签结果为签名验签成功时,利用所述输入私钥对所述非对称加密文本进行文本解密处理,得到非对称解密文本;
53.基于所述哈希加密文本对应的哈希加密函数,对所述哈希加密文本进行文本逆向解密,得到哈希解密文本;
54.基于所述对称加密文本对应的密钥方法、加密填充类型及信息价值,对所述对称加密文本进行文本逆向解密,得到对称解密文本;
55.将所述非对称解密文本、所述哈希解密文本及所述对称解密文本作为所述解密文本。
56.第二方面,本发明提供了一种基于openssl的多种加解密算法实现系统,所述系统
包括:
57.文本提取模块,用于构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;
58.密钥构建模块,用于基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;
59.文本加密模块,用于构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;
60.文本传输模块,用于利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;
61.签名验签模块,用于在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;
62.文本显示模块,用于基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
63.与现有技术相比,本方案的技术原理及有益效果在于:
64.本发明实施例首先通过构建所述待加密文本的最终私钥与最终公钥,以用于构建用于后续ecc签名验签的16进制公私钥,提升加解密算法所适应的数据格式多样性,进一步地,本发明实施例通过构建所述待加密文本的哈希加密文本、对所述待加密文本进行文本非对称加密,以用于保障hash算法加密以及aes加解密可支持多种编码输出格式。因此,本发明实施例提出的一种基于openssl的多种加解密算法实现方法及系统,可以提高加解密算法所适应的数据格式多样性。
附图说明
65.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
66.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
67.图1为本发明一实施例提供的一种基于openssl的多种加解密算法实现方法的流程示意图;
68.图2为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的加解密平台的结构示意图;
69.图3为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的加解密平台的界面示意图;
70.图4为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的哈希加密文本的构建流程图;
71.图5为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的包含多种编码输出格式的哈希加密文本的示意图;
72.图6为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的文本对称加密流程图;
73.图7为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的对称加密文本的示意图;
74.图8为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的文本非对称加密流程图;
75.图9为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的签名原理图;
76.图10为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的签名验签流程图。
77.图11为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的签名验签结果图。
78.图12为本发明一实施例提供的一种基于openssl的多种加解密算法实现系统的模块示意图;
79.图13为本发明一实施例提供的实现基于openssl的多种加解密算法实现方法的电子设备的内部结构示意图。
具体实施方式
80.应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
81.本发明实施例提供一种基于openssl的多种加解密算法实现方法,所述基于openssl的多种加解密算法实现方法的执行主体包括但不限于服务端、终端等能够被配置为执行本发明实施例提供的该方法的电子设备中的至少一种。换言之,所述基于openssl的多种加解密算法实现方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
82.参阅图1所示,是本发明一实施例提供的基于openssl的多种加解密算法实现方法的流程示意图。其中,图1中描述的基于openssl的多种加解密算法实现方法包括:
83.s1、构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥。
84.参阅图2所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的加解密平台的结构示意图。在图2中,所述加解密平台包括展示层、控制层、业务逻辑层、数据访问层,其中,所述展示层包括后台接口软件与node.js(一款让javascript运行在服务端的开发平台)、react(一款javascript图形界面库)、electron(跨平台应用框
架)、跨平台客户端、api接口,所述控制层包括业务接口控制器与ffi-napi(一款能调用c++dll库的javascript库),所述业务逻辑层包括hash工具、aes工具、ecc工具,所述数据访问层包括c++dll库(动态链接库,即openssl)。
85.参阅图3所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的加解密平台的界面示意图。在图3中,第一张图为平台界面示意图,第二张图为hash界面工具示意图,第三张图为aes工具界面示意图。
86.需要说明的是,所述加解密平台支持多种加解密算法的实现,包括对称加密、非对称加密技术和对称加密和ecc签名验签技术,其中对称加密包括des(digital encryption standard)数据加密标准、三重des(3des或tdea)、idea国际数据加密算法、aes(advanced encryption standard)高级加密标准等等,非对称加密技术包括rsa(rivest,shamir andadleman)等等;des(digital encryption standard)数据加密标准主要使用替换和移位的方式加密,使用56位密钥对64位二进制数据块进行加密,每次加密可以对64位的数据块进行16轮编码,特点是运算速度快,密钥容易产生;三重des(3des或tdea)从字面意思就知道,三次des,就是利用两个56位的密钥进行三次加密解密操作,比如两个密钥分别是k1,k2;则发送方使用k1对数据加密,k2解密,k1加密,当接收方收到后,使用k1解密,k2加密,再使用k1解密,这样就得到了原来的数据,其效果相当于将密钥的长度翻倍;idea国际数据加密算法类似于三重das,密钥长度是128位;aes(advanced encryption standard)高级加密标准使用排列和置换的方式进行加密,它是一个迭代的,对称分组的密码,可以使用128,256,192位密钥,并且用128位(16字节)分组加密和解密数据。rsa(rivest,shamir andadleman)一种公钥加密的算法。
87.参阅图3所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的aes高级加密标准的加密流程示意图。
88.本发明实施例中,所述待加密文本是指用户需要利用所述加解密平台进行加密以及解密进行查看的文本;所述输入公钥与所述输入私钥为用户所设置公钥与私钥。
89.s2、基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥。
90.本发明实施例通过构建所述待加密文本的最终私钥与最终公钥,以用于构建用于后续ecc签名验签的16进制公私钥,提升加解密算法所适应的数据格式多样性。
91.本发明的一实施例中,所述基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,包括:将所述输入私钥的格式转化为目标格式,得到目标格式私钥;查询所述目标格式私钥的私钥曲线格式;基于所述私钥曲线格式,确定所述目标格式私钥的私钥头部字符串与私钥中间字符串;构建所述目标格式私钥的虚拟公钥;拼接所述私钥头部字符串、所述目标格式私钥、所述私钥中间字符串及所述虚拟公钥,得到所述最终私钥。
92.其中,所述目标格式是指16进制格式,用于与最终私钥的16进制格式相匹配。示例性地,判断所述目标格式私钥是否符合对应曲线的格式,例如符合prime256v1曲线格式时,将所述目标格式私钥(0x66,0x4c,0x5e,0xfd,0x57,0xbe,0x45,0x72,0xa7,0x2b,0x61,0xcf,0xbf,0x76,0x4b,0x5d,0x1f,0xa5,0x41,0x6c,0xce,0xba,0x133,0x2d,0xa9,0xf3,0x93,0xcd,0xef,0xcb,0x6c,0xbd)与相应的prime256v1曲线格式下的头部格式数据
30770201010420(头部字符串)进行拼接,以及拼接相应的middlestringa00a06082a8648ce3d030107a1412034200(中间字符串),再通过使用ffi-napi定义的方法来调用c++对应的接口来推导16进制的输入私钥对应的公钥并拼接此公钥来组合成一个完整的私钥。
93.本发明的又一实施例中,所述构建所述目标格式私钥的虚拟公钥,包括:获取加解密平台的调用方法与动态链接库,利用所述调用方法调用所述动态链接库的公钥接口;基于所述目标格式私钥,利用被调用的公钥接口构建所述虚拟公钥。
94.示例性地,获得16进制格式的目标格式私钥,使用ffi-napi定义的方法来调用c++库,也就是openssl库中的方法来从私钥中推导出公钥。
95.本发明的一实施例中,所述基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥,包括:将所述输入公钥的格式转化为目标格式,得到目标格式公钥;查询所述目标格式公钥的公钥曲线格式;基于所述公钥曲线格式,确定所述目标格式公钥的公钥头部字符串与公钥中间字符串;在所述加解密平台的动态链接库中查询所述目标格式公钥的拼接方式;根据所述拼接方式,拼接所述钥头部字符串、所述目标格式公钥及所述公钥中间字符串,得到所述最终公钥。
96.示例性地,在所述公钥曲线格式为prime256v1曲线格式时,确定头部字符串3059301306072a8648ce3d020106082a8648ce3d030107034200,将0x14,0x98,0x79,0xf6,0xad,0x60,0x4e,0x23,0x11,0xc2,0x67,0x86,0x82,0x75,0x7f,0xc1,0x1d,0x06,0x5b,0x97,0x30,0x57,0x6f,0x08,0x39,0x1a,0x0a,0x4c,0xcc,0xbe,0x6e,0xba,0x3c,0x81,0xac,0xa0,0x9d,0x8c,0x42,0x19,0x92,0x77,0x1c,0xa1,0x14,0xdd,0x24,0xb8,0x06,0x6a,0xb0,0x8f,0xe7,0x85,0x00,0xe4,0x8d,0x86,0xfa,0xf3,0x01,0x33,0xa9,0x14(所述目标格式公钥)与所述头部字符串、middlestring 04(中间字符串)进行拼接,使用ffi-napi定义的方法来调用c++库,也就是openssl库中的方法来按照特定格式拼接得到所述最终公钥。
97.s3、构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本。
98.本发明实施例通过构建所述待加密文本的哈希加密文本、对所述待加密文本进行文本非对称加密,以用于保障hash算法加密以及aes加解密可支持多种编码输出格式。
99.本发明的一实施例中,所述构建所述待加密文本的哈希加密文本,包括:计算所述待加密文本的哈希加密字符;将所述哈希加密字符转换为加密字节流;利用加解密平台的字节服务端的编码转换器对所述加密字节流进行输出格式编码,得到包含多种编码输出格式的哈希加密文本。
100.参阅图4所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的哈希加密文本的构建流程图。
101.参阅图5所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的包含多种编码输出格式的哈希加密文本的示意图。
102.本发明的一实施例中,所述对所述待加密文本进行文本对称加密,得到对称加密文本,包括:在所述待加密文本的加密类型为第一加密类型时,利用下述格式构建所述待加密文本的密钥方法:
103.myadddii.aes_set_encrypt_key(_key.buffer,bits,aes_key_pointer)
104.其中,aes_key_pointer表示所述密钥方法,aes加密方式,myadddii表示c++的dll名称,aes_set_encrypt为动态链接库openssl导出的接口方法,_key.buffer代表密钥字节流,bits代表当前密钥位数;
105.选取所述待加密文本的加密填充类型;基于所述第一加密类型、所述加密填充类型,利用所述密钥方法对所述待加密文本进行文本第一加密,得到第一加密文本;在所述待加密文本的加密类型为第二加密类型时,确定所述待加密文本的符合预设格式的信息价值;利用所述信息价值与所述第二加密类型对所述待加密文本进行文本第二加密,得到第二加密文本;对所述第一加密文本与所述第二加密文本进行输出格式编码,得到包含多种编码输出格式的第一加密文本与第二加密文本,并综合所述包含多种编码输出格式的第一加密文本与第二加密文本确定所述对称加密文本。
106.参阅图6所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的文本对称加密流程图。在图6中,其中,myadddii.aes_set_encrypt_key(_key.buffer,bits,aes_key_pointer)中的aes set_encrypt为openssl导出的接口方法,_key.buffer代表密钥字节流,bits代表当前密钥位数;所述第一加密类型为ecb类型;所述加密填充类型包括none类型、zer类型等;所述第二加密类型为cbc类型;所述信息价值为iv值,所述预设格式为16位七进制格式。
107.参阅图7所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的对称加密文本的示意图。
108.参阅图8所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的文本非对称加密流程图。在图8中,包含两种方式的非对称加密方式,一种是发送方使用接收方的公钥加密,是一个多对一的关系,为的是保障数据的安全性;另一种是发送方使用自己的私钥加密,接收方使用发送方的公钥解密,是一个一对多的关系,用于签发认证,只是为了表名数据的来源是可靠的。
109.s4、利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方。
110.本发明的一实施例中,所述利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,包括:对所述哈希加密文本进行目标格式转换,得到目标格式文本;计算所述目标格式文本的哈希摘要值;基于所述哈希加密文本对应的动态链接库,利用所述最终私钥对所述哈希摘要值进行加密,得到所述签名文本。
111.其中,所述目标格式文本是指16进制格式的文本。示例性地,摘要:将需要传输的文本做一个hash计算,一般采用sha1,sha2来获得;签名:使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。示例性地,通过ffi-napi定义方法调用openssl接口,实现相应的输入16进制私钥对hash消息摘要数据进行签名。
112.本发明实施例中,所述发送方与所述接收方共用所述加解密平台,则在所述加解密平台中,所述发送方发送的文本在进行加密之后,所述接收方可以进行查看。
113.参阅图9所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的签名原理图。
114.s5、在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进
行签名验签,得到签名验签结果。
115.本发明的一实施例中,所述基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果,包括:利用所述最终公钥对所述签名文本进行文本解密,得到解密摘要值;获取所述哈希加密文本对应的计算所述哈希摘要时的哈希函数;利用所述哈希函数计算所述哈希加密文本的验证哈希摘要值;检验所述解密摘要值与所述验证哈希摘要值是否一致;在所述解密摘要值与所述验证哈希摘要值一致时,将签名验签成功作为所述签名验签结果;在所述解密摘要值与所述验证哈希摘要值不一致时,将签名验签失败作为所述签名验签结果。
116.示例性地,签名验证:数据接收端,拿到传输文本,但是需要确认该文本是否就是发送者发出的内容,中途是否曾经被篡改,因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密),得到了文本的摘要,然后使用传输的文本内容与发送方同样的hash算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。
117.参阅图10所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的签名验签流程图。
118.参阅图11所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的签名验签结果图。
119.s6、基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
120.本发明的一实施例中,所述基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,包括:在所述签名验签结果为签名验签成功时,利用所述输入私钥对所述非对称加密文本进行文本解密处理,得到非对称解密文本;基于所述哈希加密文本对应的哈希加密函数,对所述哈希加密文本进行文本逆向解密,得到哈希解密文本;基于所述对称加密文本对应的密钥方法、加密填充类型及信息价值,对所述对称加密文本进行文本逆向解密,得到对称解密文本;将所述非对称解密文本、所述哈希解密文本及所述对称解密文本作为所述解密文本。
121.参阅图12所示,为本发明一实施例中图1提供的一种基于openssl的多种加解密算法实现方法的显示加密文本的流程示意图。
122.可以看出,本发明实施例首先通过构建所述待加密文本的最终私钥与最终公钥,以用于构建用于后续ecc签名验签的16进制公私钥,提升加解密算法所适应的数据格式多样性,进一步地,本发明实施例通过构建所述待加密文本的哈希加密文本、对所述待加密文本进行文本非对称加密,以用于保障hash算法加密以及aes加解密可支持多种编码输出格式。因此,本发明实施例提出的一种基于openssl的多种加解密算法实现方法可以提高加解密算法所适应的数据格式多样性。
123.如图12所示,是本发明基于openssl的多种加解密算法实现系统功能模块图。
124.本发明所述基于openssl的多种加解密算法实现系统1200可以安装于电子设备
中。根据实现的功能,所述基于openssl的多种加解密算法实现系统可以包括文本提取模块1201、密钥构建模块1202、文本加密模块1203、文本传输模块1204、签名验签模块1205以及文本显示模块1206。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
125.在本发明实施例中,关于各模块/单元的功能如下:
126.所述文本提取模块1201,用于构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;
127.所述密钥构建模块1202,用于基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;
128.所述文本加密模块1203,用于构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;
129.所述文本传输模块1204,用于利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;
130.所述签名验签模块1205,用于在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;
131.所述文本显示模块1206,用于基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
132.详细地,本发明实施例中所述基于openssl的多种加解密算法实现系统1200中的所述各模块在使用时采用与上述的图1至图11中所述的基于openssl的多种加解密算法实现方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
133.如图13所示,是本发明实现基于openssl的多种加解密算法实现方法的电子设备的结构示意图。
134.所述电子设备可以包括处理器130、存储器131、通信总线132以及通信接口133,还可以包括存储在所述存储器131中并可在所述处理器130上运行的计算机程序,如基于openssl的多种加解密算法实现程序。
135.其中,所述处理器130在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器130是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器131内的程序或者模块(例如执行基于openssl的多种加解密算法实现程序等),以及调用存储在所述存储器131内的数据,以执行电子设备的各种功能和处理数据。
136.所述存储器131至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器131在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。
所述存储器131在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器131还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器131不仅可以用于存储安装于电子设备的应用软件及各类数据,例如数据库配置化连接程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
137.所述通信总线132可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器131以及至少一个处理器130等之间的连接通信。
138.所述通信接口133用于上述电子设备5与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,所述用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当地称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
139.图13仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图13示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
140.例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理系统与所述至少一个处理器130逻辑相连,从而通过电源管理系统实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
141.应该了解,所述实施例仅为说明之用,在专利发明范围上并不受此结构的限制。
142.所述电子设备中的所述存储器131存储的数据库配置化连接程序是多个计算机程序的组合,在所述处理器130中运行时,可以实现:
143.构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;
144.基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;
145.构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;
146.利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;
147.在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;
148.基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
149.具体地,所述处理器130对上述计算机程序的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
150.进一步地,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或系统、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
151.本发明还提供一种存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
152.构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;
153.基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;
154.构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;
155.利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;
156.在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;
157.基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
158.在本发明所提供的几个实施例中,应该理解到,所揭露的设备,系统和方法,可以通过其他的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
159.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
160.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
161.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
162.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
163.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性地包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
164.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所发明的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种基于openssl的多种加解密算法实现方法,其特征在于,所述方法包括:构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。2.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,包括:将所述输入私钥的格式转化为目标格式,得到目标格式私钥;查询所述目标格式私钥的私钥曲线格式;基于所述私钥曲线格式,确定所述目标格式私钥的私钥头部字符串与私钥中间字符串;构建所述目标格式私钥的虚拟公钥;拼接所述私钥头部字符串、所述目标格式私钥、所述私钥中间字符串及所述虚拟公钥,得到所述最终私钥。3.根据权利要求2所述的基于openssl的多种加解密算法实现方法,其特征在于,所述构建所述目标格式私钥的虚拟公钥,包括:获取加解密平台的调用方法与动态链接库,利用所述调用方法调用所述动态链接库的公钥接口;基于所述目标格式私钥,利用被调用的公钥接口构建所述虚拟公钥。4.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥,包括:将所述输入公钥的格式转化为目标格式,得到目标格式公钥;查询所述目标格式公钥的公钥曲线格式;基于所述公钥曲线格式,确定所述目标格式公钥的公钥头部字符串与公钥中间字符串;在所述加解密平台的动态链接库中查询所述目标格式公钥的拼接方式;根据所述拼接方式,拼接所述钥头部字符串、所述目标格式公钥及所述公钥中间字符串,得到所述最终公钥。
5.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述构建所述待加密文本的哈希加密文本,包括:计算所述待加密文本的哈希加密字符;将所述哈希加密字符转换为加密字节流;利用加解密平台的字节服务端的编码转换器对所述加密字节流进行输出格式编码,得到包含多种编码输出格式的哈希加密文本。6.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述对所述待加密文本进行文本对称加密,得到对称加密文本,包括:在所述待加密文本的加密类型为第一加密类型时,利用下述格式构建所述待加密文本的密钥方法:myadddii.aes_set_encrypt_key(_key.buffer,bits,aes_key_pointer)其中,aes_key_pointer表示所述密钥方法,aes加密方式,myadddii表示c++的dll名称,aes_set_encrypt为动态链接库openssl导出的接口方法,_key.buffer代表密钥字节流,bits代表当前密钥位数;选取所述待加密文本的加密填充类型;基于所述第一加密类型、所述加密填充类型,利用所述密钥方法对所述待加密文本进行文本第一加密,得到第一加密文本;在所述待加密文本的加密类型为第二加密类型时,确定所述待加密文本的符合预设格式的信息价值;利用所述信息价值与所述第二加密类型对所述待加密文本进行文本第二加密,得到第二加密文本;对所述第一加密文本与所述第二加密文本进行输出格式编码,得到包含多种编码输出格式的第一加密文本与第二加密文本,并综合所述包含多种编码输出格式的第一加密文本与第二加密文本确定所述对称加密文本。7.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,包括:对所述哈希加密文本进行目标格式转换,得到目标格式文本;计算所述目标格式文本的哈希摘要值;利用所述最终私钥对所述哈希摘要值进行加密,得到所述签名文本。8.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果,包括:利用所述最终公钥对所述签名文本进行文本解密,得到解密摘要值;获取所述哈希加密文本对应的计算所述哈希摘要时的哈希函数;利用所述哈希函数计算所述哈希加密文本的验证哈希摘要值;检验所述解密摘要值与所述验证哈希摘要值是否一致;在所述解密摘要值与所述验证哈希摘要值一致时,将签名验签成功作为所述签名验签结果;在所述解密摘要值与所述验证哈希摘要值不一致时,将签名验签失败作为所述签名验
签结果。9.根据权利要求1所述的基于openssl的多种加解密算法实现方法,其特征在于,所述基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,包括:在所述签名验签结果为签名验签成功时,利用所述输入私钥对所述非对称加密文本进行文本解密处理,得到非对称解密文本;基于所述哈希加密文本对应的哈希加密函数,对所述哈希加密文本进行文本逆向解密,得到哈希解密文本;基于所述对称加密文本对应的密钥方法、加密填充类型及信息价值,对所述对称加密文本进行文本逆向解密,得到对称解密文本;将所述非对称解密文本、所述哈希解密文本及所述对称解密文本作为所述解密文本。10.一种基于openssl的多种加解密算法实现系统,其特征在于,所述系统包括:文本提取模块,用于构建加解密平台,在所述加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;密钥构建模块,用于基于所述输入私钥,利用所述加解密平台构建所述待加密文本的最终私钥,并基于所述输入公钥,利用所述加解密平台构建所述待加密文本的最终公钥;文本加密模块,用于构建所述待加密文本的哈希加密文本,对所述待加密文本进行文本对称加密,得到对称加密文本,基于所述输入公钥,对所述待加密文本进行文本非对称加密,得到非对称加密文本;文本传输模块,用于利用所述最终私钥对所述哈希加密文本进行文本签名,得到签名文本,将所述哈希加密文本与所述签名文本传输至所述发送方对应的接收方;签名验签模块,用于在所述接收方处,基于所述最终公钥与所述签名文本,对所述哈希加密文本进行签名验签,得到签名验签结果;文本显示模块,用于基于所述签名验签结果,利用所述输入私钥对所述哈希加密文本、所述对称加密文本及所述非对称加密文本进行文本解密处理,得到解密文本,在所述加解密平台的用户端中显示所述解密文本及其对应的加密文本,得到显示结果,将所述显示结果作为所述加解密平台的加解密实现结果。
技术总结
本发明涉及加解密算法领域,揭露一种基于OpenSSL的多种加解密算法实现方法及系统,所述方法包括:构建加解密平台,在加解密平台中提取发送方输入的待加密文本、输入公钥及输入私钥;构建待加密文本的最终私钥,构建待加密文本的最终公钥;构建待加密文本的哈希加密文本,对待加密文本进行文本对称加密,得到对称加密文本,对待加密文本进行文本非对称加密,得到非对称加密文本;对哈希加密文本进行文本签名,得到签名文本,将哈希加密文本与签名文本传输至发送方对应的接收方;对哈希加密文本进行签名验签,得到签名验签结果;对哈希加密文本、对称加密文本及非对称加密文本进行文本解密处理,得到解密文本。本发明可以提高加解密数据格式多样性。密数据格式多样性。密数据格式多样性。
技术研发人员:林彩杨 陈燕 柳建勇 陈魁 葛炜
受保护的技术使用者:深圳市一卓科技有限公司
技术研发日:2023.05.26
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/