CN116170157A - 一种基于国密算法的用户密码加解密方法与装置 - Google Patents
一种基于国密算法的用户密码加解密方法与装置 Download PDFInfo
- Publication number
- CN116170157A CN116170157A CN202310165565.4A CN202310165565A CN116170157A CN 116170157 A CN116170157 A CN 116170157A CN 202310165565 A CN202310165565 A CN 202310165565A CN 116170157 A CN116170157 A CN 116170157A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- encryption
- key
- user
- password
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种基于国密算法的用户密码加解密方法与装置。所述方法包括:获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;将用户明文密码转换成符合预设格式的第一密文;基于第一公钥对所述第一密文做非对称加密得到第二密文;随机生成预设字节的加密密钥和初始向量,并基于预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;根据客户端与服务端之间的通信证书、预设字节的加密密钥和初始向量得到第一密钥;拼接第一密钥与第三密文,并将拼接结果发送至服务端进行验证。本申请能减少对国际算法的依赖,使个人用户信息得到较好的保护。
Description
技术领域
本申请涉及通信安全技术领域,更为具体来说,本申请涉及一种基于国密算法的用户密码加解密方法与装置。
背景技术
国密算法是我国自主研发创新的一套数据加密处理系列算法,从SM1至SM4分别实现了对称、非对称、摘要等算法功能。国际算法是由美国安全局发布的算法。现有的用户加密一般采用国际算法对用户明文密码进行加密解密。然而,采用国际算法难免对国际产生依赖且影响通信安全,使个人用户信息得不到较好的保护。不仅如此,由于国密算法安全性高等一系列原因,国内的银行和支付机构都推荐使用国密算法。
发明内容
基于上述技术问题,本发明旨在基于国密算法对用户密码加密与解密,以脱离国际算法的控制度,且提升加解密算法的安全性能。
本发明第一方面提供了一种基于国密算法的用户密码加解密方法,应用于客户端,所述方法包括:
获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
将所述用户明文密码转换成符合预设格式的第一密文;
基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
在本发明的一些实施例中,所述预设格式的第一密文依次由密码长度和密码明文组成且组成后的位数达到预设位数,若组成后的位数不足预设位数,则在所述密码明文后补0,以使补0后的位数达到预设位数。
在本发明的一些实施例中,输入用户明文密码后还获取服务端发送的与用户明文密码对应的时间戳;所述基于所述第一公钥对所述第一密文做非对称加密得到第二密文,包括:
将所述时间戳与所述第一密文组合;
采用所述第一公钥对所述时间戳与所述第一密文的组合结果做非对称加密,得到第二密文。
在本发明的一些实施例中,基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文,包括:
基于所述预设字节的加密密钥和所述初始向量对所述第二密文做非对称加密,得到中间结果;
将所述中间结果转换为小写预设格式,并将转换后的中间结果作为第三密文。
在本发明的一些实施例中,所述根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥,包括:
将所述预设字节的加密密钥和所述初始向量拼合;
采用所述客户端与服务端之间的通信证书对所述预设字节的加密密钥和所述初始向量的拼合结果做非对称加密,得到第一密钥。
本发明第二方面提供了一种基于国密算法的用户密码加解密方法,应用于服务端,所述方法包括:
接收客户端发送的对用户明文密码加密后的密文;
将所述加密后的密文拆分为第一密钥与所述第三密文;
获取第一密钥索引和第二密钥索引;
根据所述第一密钥索引对所述第一秘钥进行解密,并根据所述第二密钥索引对所述第三密文进行解密,得到第二密文;
根据所述第一密钥索引对所述第二密文进行解密,得到时间戳与第一密文;
当所述时间戳通过验证时,根据预设国密算法将第一密文转换为密文摘要。
在本发明的一些实施例中,在所述根据预设国密算法将第一密文转换为密文摘要之后,还包括:
在服务端的数据库中查找所述密文摘要,若找到所述密文摘要且所述密文摘要与目标用户的明文密码一致,则返回客户端密码验证成功的消息。
本发明第三方面提供了一种基于国密算法的用户密码加解密装置,所述装置包括:
获取模块,被配置为输入用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
转换模块,被配置为将所述用户明文密码转换成符合预设格式的第一密文;
第一加密模块,被配置为基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
第二加密模块,被配置为随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
第三加密模块,被配置为根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
拼接模块,被配置为拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
本发明第四方面提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行以下步骤:
获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
将所述用户明文密码转换成符合预设格式的第一密文;
基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
本发明第五方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
将所述用户明文密码转换成符合预设格式的第一密文;
基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥,将所述用户明文密码转换成符合预设格式的第一密文,基于所述第一公钥对所述第一密文做非对称加密得到第二密文,随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文,根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥,拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证,整体加密过程不再依赖国际算法,使个人用户信息实现了较好的保护,实现了通信安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请一示例性实施例中的基于国密算法的用户密码加解密方法步骤示意图;
图2示出了本申请一示例性实施例中客户端用户密码加密的局部工作过程示意图;
图3示出了本申请一示例性实施例中的基于国密算法的用户密码加解密装置结构示意图;
图4示出了本申请一示例性实施例所提供的一种计算机设备的结构示意图。
具体实施方式
以下,将参照附图来描述本申请的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。对于本领域技术人员来说显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述。
应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本申请的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
现在,将参照附图更详细地描述根据本申请的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
下面结合说明书附图1-附图4给出几个实施例来描述根据本申请的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
国密算法是我国自主研发创新的一套数据加密处理系列算法,从SM1至SM4分别实现了对称、非对称、摘要等算法功能。国际算法是由美国安全局发布的算法,现有的用户加密一般采用国际算法对用户明文密码进行加密解密。然而,采用国际算法难免对国际产生依赖且影响通信安全,使个人用户信息得不到较好的保护。不仅如此,由于国密算法安全性高等一系列原因,国内的银行和支付机构都推荐使用国密算法。
因此,在本申请一些示例性实施例中,提供了一种基于国密算法的用户密码加解密方法,如图1所示,所述方法包括:
S1、获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
S2、将所述用户明文密码转换成符合预设格式的第一密文;
S3、基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
S4、随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
S5、根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
S6、拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
需要说明的是,SM2算法表示国密非对称算法,需要公私钥对对算法进行加解密;SM3算法表示国密Hash摘要算法,对明文字符串生成Hash摘要;SM4算法表示国密对称加密算法,客户端与服务端通过用同一个密钥加解密数据达到数据传输安全性保证。
在具体实施时,S1中获取服务端发送的针对用户明文密码的SM2公钥用hsmPubKeyGM表示,客户端与服务端之间的通信证书公钥用appPubKeyGM表示,服务端发送的公钥是来源于服务端的加密机。所述预设格式的第一密文依次由密码长度和密码明文组成且组成后的位数达到预设位数,若组成后的位数不足预设位数,则在所述密码明文后补0,以使补0后的位数达到预设位数,预设位数为16的倍数。换言之,预设格式的第一密文为密码长度加密码明文并补零的格式,所述预设格式的第一密文的总长度为16的倍数。例如32位、64位等。在这里可以参考图2,如图2所示,用户在客户端的APP输入明文密码,用户的明文密码会转换为“密码长度+密码明文+补0”的格式,整体长度是16的倍数。
在一种优选的实现方式中,输入用户明文密码后还获取服务端发送的与用户明文密码对应的时间戳timestamp;基于所述SM2公钥hsmPubKeyGM对所述第一密文password1做非对称加密得到第二密文,包括:将所述时间戳与所述第一密文组合;采用所述SM2公钥对所述时间戳与所述第一密文的组合结果即timestamp:password1做非对称加密,得到第二密文。在具体实施时,第二密文的格式默认是按C1C3C2顺序,没有前导字节04。
在一种优选的实现方式中,随机生成32字节的加密密钥key和初始向量lv,基于所述32字节的加密密钥key和所述初始向量lv对所述第二密文依次做SM4非对称加密、HEX格式转换,得到第三密文,包括:基于所述32字节的加密密钥和所述初始向量对所述第二密文做SM4非对称加密,得到中间结果;将所述中间结果转换为小写HEX格式,并将转换后的中间结果作为第三密文。
在一种优选的实现方式中,根据所述客户端与服务端之间的通信证书、所述32字节的加密密钥和所述初始向量得到第一密钥,包括:将所述32字节的加密密钥和所述初始向量拼合;采用所述客户端与服务端之间的通信证书对所述32字节的加密密钥key和所述初始向量lv的拼合结果做SM2非对称加密,得到第一密钥key2。最后,拼接所述第一密钥key2与所述第三密文,并将拼接结果发送至服务端进行验证,即APP调用服务端接口上传该拼接结果。
由于国密算法安全性高等一系列原因,国内的银行和支付机构都推荐使用国密算法。本申请各实施例中所提供的方法,密码加密包含从用户输入明文密码开始,到加密上传密文的过程,密码加密经过SM2加密、SM4加密、SM2加密等三次生成最终上传给服务端的密码密文,其整体加密过程不再依赖国际算法,使个人用户信息实现了较好的保护,从而实现通信安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
在本申请一些示例性实施例中,还提供了一种基于国密算法的用户密码加解密方法,应用于服务端,所述方法包括:接收客户端发送的对用户明文密码加密后的密文;将所述加密后的密文拆分为第一密钥与所述第三密文;获取SM2密钥索引和SM4密钥索引;根据所述SM2密钥索引对所述第一秘钥进行解密,并根据所述SM4密钥索引对所述第三密文进行解密,得到第二密文;根据所述SM2密钥索引对所述第二密文进行解密,得到时间戳与第一密文;当所述时间戳通过验证(优选为不超过10分钟)时,根据SM3国密算法将第一密文转换为密文摘要。需要说明的是,密钥索引通过服务端中托管的配置文件来得到,在此不再赘述。
在一种优选的实现方式中,根据SM3国密算法将第一密文转换为密文摘要之前,还包括调用加密机进行SM2到SM4转加密,“SM2到SM4转加密”是指经过加密机对用户密码进行SM2解密成明文,紧接着加密机对用户密码明文进行SM4加密,最后返回用SM4加密过的用户密码密文的过程。再具体而言,用户设置密码时,服务端用上述密码验证流程解密,并最终将转加密之后的SM4密文进行SM3摘要,并将SM3摘要结果保存在数据库的用户信息表中。
在具体的实施时,根据所述SM2密钥索引对所述第二密文进行解密,得到时间戳与第一密文,因为在加密时时间戳与第一密文是通过冒号组合在一起的,因此在解密时会通过“冒号”来截取出时间戳timestamp和第一密文。
在一种优选的实施方式中,在根据SM3国密算法将第一密文转换为密文摘要之后,还包括:在服务端的数据库中查找所述密文摘要,若找到所述密文摘要且所述密文摘要与目标用户的明文密码一致,则返回客户端密码验证成功的消息。换言之,如果和数据库存储的记录相同,认为用户密码输入正确,如果不相同则认为用户密码输入错误。
综上,服务端对接受到的用户密码进行SM2解密、SM4解密、SM2到SM4转加密、SM3摘要等国密算法对用户密码进行解密与转加密,减少了对国际算法的依赖,使个人用户信息得到较好的保护,从而实现了通信安全。
在本申请一些示例性实施例中,还提供了一种基于国密算法的用户密码加解密装置,如图3所示,该装置用于执行上述任一实施例提供的基于国密算法的用户密码加解密方法,所述装置包括:
获取模块,被配置为输入用户明文密码,并获取服务端发送的针对用户明文密码的SM2公钥和客户端与服务端之间的通信证书公钥;
转换模块,被配置为将所述用户明文密码转换成符合预设格式的第一密文;
第一加密模块,被配置为基于所述SM2公钥对所述第一密文做非对称加密得到第二密文;
第二加密模块,被配置为随机生成32字节的加密密钥和初始向量,并基于所述32字节的加密密钥和所述初始向量对所述第二密文依次做SM4非对称加密、HEX格式转换,得到第三密文;
第三加密模块,被配置为根据所述客户端与服务端之间的通信证书、所述32字节的加密密钥和所述初始向量得到第一密钥;
拼接模块,被配置为拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
可以理解的是,所述基于国密算法的用户密码加解密装置还包括一些支撑性硬件或设备,在此不再赘述。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
在本申请一些示例性实施例中,还提供了一种基于国密算法的用户密码加解密装置,所述装置包括:
接收模块,用于接收客户端发送的对用户明文密码加密后的密文;
拆分模块,用于将所述加密后的密文拆分为第一密钥与所述第三密文;
获取模块,用于获取SM2密钥索引和SM4密钥索引;
第一解密模块,用于根据所述SM2密钥索引对所述第一秘钥进行解密,并根据所述SM4密钥索引对所述第三密文进行解密,得到第二密文;
第二解密模块,用于根据所述SM2密钥索引对所述第二密文进行解密,得到时间戳与第一密文;
第三解密模块,用于当所述时间戳通过验证时,根据SM3国密算法将第一密文转换为密文摘要。
可以理解的是,所述装置还包括转加密模块,用于调用加密机进行SM2到SM4转加密。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
还需要强调的是,本申请实施例中提供的系统可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
下面请参考图4,其示出了本申请的一些实施方式所提供的一种计算机设备的示意图。如图4所示,所述计算机设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的基于国密算法的用户密码加解密方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述基于国密算法的用户密码加解密方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施方式还提供一种与前述实施方式所提供的基于国密算法的用户密码加解密方法对应的计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于国密算法的用户密码加解密方法。
另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的基于国密算法的用户密码加解密方法的步骤,包括:获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;将所述用户明文密码转换成符合预设格式的第一密文;基于所述第一公钥对所述第一密文做非对称加密得到第二密文;随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于国密算法的用户密码加解密方法,应用于客户端,其特征在于,所述方法包括:
获取用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
将所述用户明文密码转换成符合预设格式的第一密文;
基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
2.根据权利要求1所述的基于国密算法的用户密码加解密方法,其特征在于,所述预设格式的第一密文依次由密码长度和密码明文组成且组成后的位数达到预设位数,若组成后的位数不足预设位数,则在所述密码明文后补0,以使补0后的位数达到预设位数。
3.根据权利要求1所述的基于国密算法的用户密码加解密方法,其特征在于,输入用户明文密码后还获取服务端发送的与用户明文密码对应的时间戳;所述基于所述第一公钥对所述第一密文做非对称加密得到第二密文,包括:
将所述时间戳与所述第一密文组合;
采用所述第一公钥对所述时间戳与所述第一密文的组合结果做非对称加密,得到第二密文。
4.根据权利要求3所述的基于国密算法的用户密码加解密方法,其特征在于,基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文,包括:
基于所述预设字节的加密密钥和所述初始向量对所述第二密文做非对称加密,得到中间结果;
将所述中间结果转换为小写预设格式,并将转换后的中间结果作为第三密文。
5.根据权利要求1所述的基于国密算法的用户密码加解密方法,其特征在于,所述根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥,包括:
将所述预设字节的加密密钥和所述初始向量拼合;
采用所述客户端与服务端之间的通信证书对所述预设字节的加密密钥和所述初始向量的拼合结果做非对称加密,得到第一密钥。
6.一种基于国密算法的用户密码加解密方法,应用于服务端,其特征在于,所述方法包括:
接收客户端发送的对用户明文密码加密后的密文;
将所述加密后的密文拆分为第一密钥与所述第三密文;
获取第一密钥索引和第二密钥索引;
根据所述第一密钥索引对所述第一秘钥进行解密,并根据所述第二密钥索引对所述第三密文进行解密,得到第二密文;
根据所述第一密钥索引对所述第二密文进行解密,得到时间戳与第一密文;
当所述时间戳通过验证时,根据预设国密算法将第一密文转换为密文摘要。
7.根据权利要求6所述的基于国密算法的用户密码加解密方法,其特征在于,在所述根据预设国密算法将第一密文转换为密文摘要之后,还包括:
在服务端的数据库中查找所述密文摘要,若找到所述密文摘要且所述密文摘要与目标用户的明文密码一致,则返回客户端密码验证成功的消息。
8.一种基于国密算法的用户密码加解密装置,其特征在于,所述装置包括:
获取模块,被配置为输入用户明文密码,并获取服务端发送的针对用户明文密码的第一公钥和客户端与服务端之间的通信证书公钥;
转换模块,被配置为将所述用户明文密码转换成符合预设格式的第一密文;
第一加密模块,被配置为基于所述第一公钥对所述第一密文做非对称加密得到第二密文;
第二加密模块,被配置为随机生成预设字节的加密密钥和初始向量,并基于所述预设字节的加密密钥和所述初始向量对所述第二密文依次做非对称加密、预设格式转换,得到第三密文;
第三加密模块,被配置为根据所述客户端与服务端之间的通信证书、所述预设字节的加密密钥和所述初始向量得到第一密钥;
拼接模块,被配置为拼接所述第一密钥与所述第三密文,并将拼接结果发送至服务端进行验证。
9.一种计算机设备,包括存储器和处理器,其特征在于,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310165565.4A CN116170157A (zh) | 2023-02-16 | 2023-02-16 | 一种基于国密算法的用户密码加解密方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310165565.4A CN116170157A (zh) | 2023-02-16 | 2023-02-16 | 一种基于国密算法的用户密码加解密方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116170157A true CN116170157A (zh) | 2023-05-26 |
Family
ID=86419819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310165565.4A Pending CN116170157A (zh) | 2023-02-16 | 2023-02-16 | 一种基于国密算法的用户密码加解密方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116170157A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117592065A (zh) * | 2023-11-10 | 2024-02-23 | 易方达基金管理有限公司 | 一种对键盘输入进行加解密的方法及装置 |
-
2023
- 2023-02-16 CN CN202310165565.4A patent/CN116170157A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117592065A (zh) * | 2023-11-10 | 2024-02-23 | 易方达基金管理有限公司 | 一种对键盘输入进行加解密的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108055125B (zh) | 一种产品信息的加密、解密方法及装置 | |
US11706026B2 (en) | Location aware cryptography | |
CN110519260B (zh) | 一种信息处理方法及信息处理装置 | |
CN110768787B (zh) | 一种数据加密、解密方法及装置 | |
US9020149B1 (en) | Protected storage for cryptographic materials | |
CN109510703A (zh) | 一种数据加解密方法及装置 | |
CN107453880B (zh) | 一种云数据安全存储方法和系统 | |
CN111612462B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN113407627A (zh) | 一种基于区块链的智能医疗网络系统及医疗数据共享方法 | |
CN105468940B (zh) | 软件保护方法及装置 | |
CN111639362B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN116383857B (zh) | 基于跨平台认证的存储方法、装置及存储介质 | |
CN109672521A (zh) | 基于国密加密引擎实现的安全存储系统和方法 | |
CN114143108B (zh) | 一种会话加密方法、装置、设备及存储介质 | |
CN110611568B (zh) | 基于多种加解密算法的动态加解密方法、装置、及设备 | |
CN102821098A (zh) | 云环境下即时通讯消息自溶解系统及方法 | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
CN110716724B (zh) | 基于fpga实现隐私区块链的方法及装置 | |
CN113572604A (zh) | 一种发送密钥的方法、装置、系统及电子设备 | |
CN116170157A (zh) | 一种基于国密算法的用户密码加解密方法与装置 | |
CN116232639A (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
Fairosebanu et al. | Data security in cloud environment using cryptographic mechanism | |
CN106973070A (zh) | 一种大数据计算托管服务安全认证系统和方法 | |
CN116861477A (zh) | 基于隐私保护的数据处理方法、系统、终端及存储介质 | |
TWI611316B (zh) | 安全輸入法之文本處理方法、文本處理裝置及文本處理系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |