CN111245808B - 数据加密、解密方法、装置及计算机设备 - Google Patents

数据加密、解密方法、装置及计算机设备 Download PDF

Info

Publication number
CN111245808B
CN111245808B CN202010012715.4A CN202010012715A CN111245808B CN 111245808 B CN111245808 B CN 111245808B CN 202010012715 A CN202010012715 A CN 202010012715A CN 111245808 B CN111245808 B CN 111245808B
Authority
CN
China
Prior art keywords
data
key
encryption algorithm
preset
plaintext
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.)
Active
Application number
CN202010012715.4A
Other languages
English (en)
Other versions
CN111245808A (zh
Inventor
黄威豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN202010012715.4A priority Critical patent/CN111245808B/zh
Publication of CN111245808A publication Critical patent/CN111245808A/zh
Application granted granted Critical
Publication of CN111245808B publication Critical patent/CN111245808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/045Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

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

数据加密、解密方法、装置及计算机设备
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据加密、解密方法、装置及计算机设备。
背景技术
在现有技术中,在基于前后端分离的开发模式下,通常是以接口为标准驱动前后端分别开发自己的功能,最后进行联调整合。在所述开发模式下,无论是开发Web端,还是APP端,必须调用后端提供的接口来完成业务的交互。此时,如果使用网络抓包工具,就能轻易的获取到对应的数据,特别是明文数据。因此,基于此种模式下的接口数据安全性就显得尤为重要,特别是用户敏感数据的保护就更加需要采用相应的安全措施进行保护。
当前业内针对以上情况的普遍做法都是采用RSA加密算法结合AES加密算法的方式。虽然采用所述方式可以在一定程度上保护接口数据的安全性。然而,由于RSA的安全性依赖于大数分解,而AES的静态对称密钥方式,意味着装置中全局共用一个AES密钥,只要获取到AES的密钥,所有的接口数据都是暴露的,也就是说,即使采用上述方式,安全性还不是很足。
发明内容
有鉴于此,本发明实施例的目的是提供一种数据加密、解密方法、装置、计算机设备及计算机可读存储介质,用于解决数据传输不安全的问题。
为实现上述目的,本发明实施例提供了一种数据加密方法,应用于第一计算机设备中,包括以下步骤:
将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;
通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;
将所述第一密钥插入至所述第三数据的预设位置得到第四数据;
通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;
获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及
将所述第五数据以及所述密钥块发送至所述第二计算机设备。
优选地,所述数据加密方法还包括:
随机生成第一预设位数的字符串作为所述第一密钥。
优选地,所述数据加密方法还包括:
生成客户端公钥;
所述用所述第二密钥对所述第四数据进行加密得到第五数据的步骤包括:
将所述客户端公钥添加至所述第四数据中;
用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到所述第五数据。
优选地,所述数据加密方法还包括:
生成客户端私钥;
接收所述第二计算机设备返回的响应数据,所述响应数据包括响应密文数据以及密钥块数据;
使用所述客户端私钥,用所述非对称加密算法对所述密钥块数据进行解密得到第三密钥;
使用所述第三密钥,用所述第二对称加密算法对所述响应密文数据进行解密得到第一响应数据;
提取所述第一响应数据的预设位置中的字符串作为第四密钥,并将剩余数据作为第二响应数据,其中,所述剩余数据为所述第一响应数据中除提取到的字符串之外的所有数据;
使用所述第四密钥,用所述第一对称加密算法对所述第二响应数据进行解密得到响应明文数据;
对所述响应明文数据进行对应的移位处理得到最终的明文数据。
优选地,所述移位处理为循环左移处理或者循环右移处理。
为实现上述目的,本发明实施例还提供了一种数据解密方法,应用于第二计算机设备,包括以下步骤:
获取第一计算机设备发送的密文组数据,其中,所述密文组数据包括密钥块数据以及密文数据;
使用预设的服务端私钥,用预设的非对称加密算法对所述密钥块数据进行解密得到第一密钥;
使用所述第一密钥,用预设的第一对称加密算法对所述密文数据进行解密得到第一明文数据;
提取所述第一明文数据的预设位置中的字符串作为第二密钥,并将所述第一明文数据中的其它字符串作为第二明文数据;
使用所述第二密钥,用预设的第二对称加密算法对所述第二明文数进行解密得到第三明文数据;
对所述第三明文数据进行对应的移位处理得到最终的明文数据。
为实现上述目的,本发明实施例还提供了一种数据加密装置,应用于第一计算机设备中,包括:
移位模块,用于将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;
第一加密模块,用于通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;
插入模块,用于将所述第一密钥插入至所述第三数据的预设位置得到第四数据;
第二加密模块,用于通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;
第三加密模块,用于获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及
发送模块,用于将所述第五数据以及所述密钥块发送至所述第二计算机设备。
为实现上述目的,本发明实施例还提供了一种数据解密装置,应用于第二计算机设备中,包括:
获取模块,用于获取第一计算机设备发送的密文组数据,其中,所述密文组数据包括密钥块数据以及密文数据;
第一解密模块,用于使用预设的服务端私钥,用预设的非对称加密算法对所述密钥块数据进行解密得到第一密钥;
第二解密模块,用于使用所述第一密钥,用预设的第一对称加密算法对所述密文数据进行解密得到第一明文数据;
提取模块,用于提取所述第一明文数据的预设位置中的字符串作为第二密钥,并将所述第一明文数据中的其它字符串作为第二明文数据;
第三解密模块,用于使用所述第二密钥,用预设的第二对称加密算法对所述第二明文数进行解密得到第三明文数据;
移位模块,用于对所述第三明文数据进行对应的移位处理得到最终的明文数据。
为实现上述目的,本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据加密方法的步骤或实现如上上述的数据解密方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的数据加密方法的步骤或如上述的数据解密方法的步骤。
本发明实施例提供的数据加密、解密方法、装置、计算机设备及计算机可读存储介质,通过将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;将所述第一密钥插入至所述第三数据的预设位置得到第四数据;通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及将所述第五数据以及所述密钥块发送至所述第二计算机设备。本实施例通过结合第一对称加密算法、第二对称加密算法以及非对称加密算法对待传输的数据进行加密,从而可以提高数据传输的安全性,同时通过对待发送数据进行加密之前,先进行移位处理,从而可以进一步提高数据传输的安全性。
附图说明
图1为本发明数据加密方法第一实施例的实施流程示意图。
图2为本发明数据加密方法第二实施例的实施流程示意图。
图3为本发明数据加密方法第三实施例的实施流程示意图。
图4为本发明数据解密方法第一实施例的实施流程示意图。
图5为本发明一实施方式的数据加密装置的程序模块示意图。
图6为本发明一实施方式的数据解密装置的程序模块示意图。
图7为本发明一实施方式的计算机设备的硬件结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
参阅图1,示出了本发明实施例一之数据加密方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以数据加密装置(下文以“加密装置”简称)为执行主体进行示例性描述,所述加密装置可以应用于第一计算机设备中,所述第一计算机设备可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。具体如下:
步骤S10,将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据。
具体地,所述第二计算机设备作为数据的解密方,可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。所述第一计算机设备作为数据的加密方。
所述第一数据可以为待传输至第二计算机设备的任意类型的数据。所述第一数据优选为敏感数据,比如为登录认证数据,所述登录认证数据包括用户账户名称与密码。
所述移位处理为对待发送至第二计算机设备的第一数据进行移位的操作,所述移位处理为针对所述第一数据中的任意位置中的一个或多个字符串进行移位处理的操作,例如,所述移位处理可以为将所述第一数据中的第一位和第二位字符串移动至所述第一数据中的第三位字符之后的操作,所述移位处理操作也可以为将所述第一数据中的第一位字符移动至所述第一数据的所有字符中的最后一个字符后面的操作等。
举例如下:假设所述第一数据为:“ABCDEFG”,则将所述第一数据中的第一位和第二位字符串移动至所述第一数据中的第三位字符之后得到的第二数据为:“CABDEFG”,将所述第一数据中的第一位字符移动至所述第一数据的所有字符中的最后一个字符后得到的第二数据为:“BCDEFGA”。
在本实施例中,所述移位处理优选为循环移位处理,即所述移位处理优选为循环左移处理或者循环右移处理,具体移位的位数可以预先设定,例如设定为3位,对应的,所述移位处理可以为循环左移3位,或者为循环右移3位。为了便于说明循环移位处理的操作,以下进行举例说明:
假设所述第一数据为:“ABCDEFG”,所述循环移位处理为进行循环左移3位,则经过循环左移3位处理后得到的第二数据为:“DEFGABC”。
同理,假设所述第一数据为:“ABCDEFG”,所述循环移位处理为进行循环右移3位,则经过循环右移3位处理后得到的第二数据为:“EFGABCD”。
步骤S11,通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据。
具体地,所述第一对称加密算法,也叫私钥加密算法,指的是加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。所述第一对称加密算法可以为DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法、AES算法或者为异或加密算法等。在本实施例中,所述第一对称加密算法优选为异或加密算法。
所述第一密钥可以为预先存储于所述第一计算机设备中的字符串,也可以为所述第一计算机设备通过随机算法生成的字符串,或者可以为从外界获取到的字符串。在一实施方式中,当所述第一密钥为第一计算机设备通过随机算法生成的,则所述数据加密方法还包括如下步骤:
随机生成第一预设位数的字符串作为所述第一密钥。
具体地,可以通过调用随机函数生成一个预设位数的随机字符串。所述字符串可以为数字、字母、符号等。其中,随机函数生成随机数的方法为现有技术,在本实施例中不作赘述。
在本实施例中,所述第一预设位数的具体值可以根据实际需要进行设定,在本实施中不作限定,例如,所述第一预设位数数的值为2位,即随机生成2位字符串(假设为Zr)作为所述第一密钥key1。
示例性地,假设所述第一对称加密算法为异或加密算法,所述第二数据为上述经过循环左移3位处理后得到的第二数据“DEFGABC”,则所述第二数据经过异或加密后得到的第三数据为:“1C1D1E1F191A1B”。
步骤S12,将所述第一密钥插入至所述第三数据的预设位置得到第四数据。
具体地,所述预设位置为预先设定的,可以为所述第三数据的最前面,也可以为所述第三数据的最后面,甚至可以为所述第三数据的任意位置,在本实施例中不作限定,具体根据用户实际需要进行设定。
示例性的:假设所述预设位置为所述第三数据的最后面,则将第一密钥key1(以“Zr”为例)插入至所述第三数据(以“1C1D1E1F191A1B”为例)的最后面时得到的第四数据为:“1C1D1E1F191A1BZr”。
假设所述预设位置为所述第三数据的第5位,则将第一密钥key1(Zr)插入至所述第三数据(1C1D1E1F191A1B)的第5位时得到第四数据为:“1C1D1ZrE1F191A1B”。
步骤S13,通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据。
具体地,所述第二对称加密算法可以为DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法、AES算法或者为异或加密算法等,所述第二对称加密算法可以和所述第一对称加密算法为相同的算法,也可以为不同的算法。在本实施例中,所述第二对称加密算法优选为AES(Advanced Encryption Standard,高级加密标准)算法。通过AES算法可以产生一个随机密钥,即每次使用AES算法都可以生成一个随机密钥。在产生所述第二密钥之后,可以通过所述第二密钥对第四数据进行AES加密,以得到加密后的数据,即得到所述第五数据。
步骤S14,获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块。
具体地,所述第二计算机设备可以通过非对称加密算法生成公钥和私钥,所述非对称加密算法可以为国密SM2算法。在本实施例中,当所述第二计算机设备生成所述公钥之后,可以将所述公钥分发给第一计算机设备,或者也可以通过所述第二计算机设备的对应接口获取到所述公钥。
所述非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用所述密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。所述非对称加密算法可以为RSA算法、Elgamal算法、背包算法、Rabin算法、D-H算法、ECC(椭圆曲线加密算法)算法或者SM2算法等。在本实施例中,所述非对称加密算法优选为SM2算法。
在本实施例中,通过第二计算机设备的公钥对所述第二密钥进行加密,从而使得第二计算机设备可以使用其生成的私钥对所述密钥块进行解密得到所述第二密钥。
步骤S15,将所述第五数据以及所述密钥块发送至所述第二计算机设备。
具体地,在得到所述第五数据以及所述密钥块之后,即可以将所述第五数据以及所述密钥块发送至所述第二计算机设备,其中,所述第二计算机设备作为数据的解密方。
在本实施例中,可以将所述第五数据以及所述密钥块一起打包发送至所述第二计算机设备;也可以先将所述第五数据发送至所述第二计算机设备,然后将所述密钥块发送至所述第二计算机设备;或者也可以先将所述密钥块发送至所述第二计算机设备,然后将所述第五数据发送至所述第二计算机设备。
本发明本实施例所提出的数据加密方法,通过将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;将所述第一密钥插入至所述第三数据的预设位置得到第四数据;通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及将所述第五数据以及所述密钥块发送至所述第二计算机设备。本实施例通过结合第一对称加密算法、第二对称加密算法以及非对称加密算法对待传输的数据进行加密,从而可以提高数据传输的安全性,同时通过对待发送数据进行加密之前,先进行移位处理,从而可以进一步提高数据传输的安全性。
参阅图2,是本发明数据加密方法第二实施例的实施流程示意图。在本实施例中,根据不同的需求,图2所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。下面同样以数据加密装置(下文以“加密装置”简称)为执行主体进行示例性描述。具体如下:
步骤S20,生成客户端公钥。
具体地,可以通过非对称加密算法生成客户端公钥。在一实施方式中,在生成客户端公钥时,也可以同时生成客户端私钥。
在一实施方式中,当第一数据为登录认证数据时,可以在进入登录页面时生成本次生成本次会话的客户端公钥和客户端私钥。同时,可以从所述第二计算机设备中获取其生成的服务端公钥。
步骤S21,将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据。
步骤S22,通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据。
步骤S23,将所述第一密钥插入至所述第三数据的预设位置得到第四数据。
具体地,上述步骤S21-S23与步骤S10-S12类似,在本实施方式中不再赘述。
步骤S24,将所述客户端公钥添加至所述第四数据中。
步骤S25,通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到第五数据。
具体地,为了提高客户端公钥传输的安全性,可以不直接将该客户端公钥发送至第二计算机设备,而是将该客户端公钥添加至所述第四数据中,以便在通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到第五数据,从而使得该客户端公钥也被加密。在本实施例中,该客户端公钥可以添加至所述第四数据的任意位置,比如,添加至第四数据的末尾。
步骤S26,获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块。
步骤S27,将所述第五数据以及所述密钥块发送至所述第二计算机设备。
具体地,上述步骤S26-S27与步骤S14-S15类似,在本实施方式中不再赘述。
本发明本实施例所提出的数据加密方法,通过将客户端公钥添加至第四数据中,从而使得该客户端公钥随着第四数据一块被加密,进而可以进一步提高数据传输的安全性。
参阅图3,是本发明数据加密方法第三实施例的实施流程示意图。本实施例基于上述第一实施例或者第二实施例,在本实施例中,根据不同的需求,图3所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。下面仍以数据加密装置(下文以“加密装置”简称)为执行主体进行示例性描述,该数据加密装置应用于第一计算机设备。具体如下:
步骤S30,生成客户端私钥,接收所述第二计算机设备返回的响应数据,所述响应数据包括响应密文数据以及密钥块数据。
具体地,客户端私钥可以通过非对称加密算法生成,在生成客户端公钥时,可以同时生成该客户端私钥;也可以先生成客户端私钥,然后生成客户端公钥;或者先生成客户端公钥,然后再生成客户端私钥,在本实施例中不作限定。
在本实施例中,所述第二计算机设备作为数据的加密方,可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。所述第一计算机设备作为数据的解密方。所述响应数据为第二计算机设备发送给第一计算机设备的数据,所述响应密文数据包括加密后的响应数据,所述密钥块数据包括加密后的密钥。
步骤S31,使用所述客户端私钥,用所述非对称加密算法对所述密钥块数据进行解密得到第三密钥。
具体地,所述密钥块数据是由第二计算机设备使用第一计算机设备生成的客户端公钥,用所述非对称加密算法对第三密钥数据进行加密后得到的数据。因而,当获取到所述密钥块数据之后,使用所述客户端私钥,用所述非对称加密算法对所述密钥块数据进行解密,即可以得到所述第三密钥。
步骤S32,使用所述第三密钥,用所述第二对称加密算法对所述响应密文数据进行解密得到第一响应数据。
具体地,所述响应密文数据是由所述第二计算机设备使用所述第三密钥,用所述第二对称加密算法对所述第一响应数据进行加密后得到的数据。因而,当获取到所述响应密文数据之后,即可以使用所述第三密钥,用所述第二对称加密算法对所述响应密文数据进行解密,即可以得到所述第一响应数据。
步骤S33,提取所述第一响应数据的预设位置中的字符串作为第四密钥,并将剩余数据作为第二响应数据,其中,所述剩余数据为所述第一响应数据中除提取到的字符串之外的所有数据。
具体地,所述第一响应数据包括所述第四密钥以及所述第二响应数据,所述第四密钥位于所述第一响应数据中的预设位置,该预设位置与所述第二计算机设备将所述第四密钥插入所述第二响应数据中的位置相关联。例如,当所述第二计算机设备在将所述第四密钥插入至所述第二响应数据中时,将该第四密钥插入至所述第二响应数据中的最后面,则所述预设位置即为所述第二响应数据的最后位置。在将所述第四密钥从所述第一响应数据中提取出来之后,该第一响应数据中的剩余数据即为所述第二响应数据。
在本实施例中,具体从所述第一响应数据的预设位置中提取多少位数的字符串由所述第四密钥的长度决定。例如,若该第四密钥由4位字符串组成,则在从所述第一响应数据的预设位置中提取所述第四密钥时,在找到所述预设位置之后,即可从该预设位置开始提取4位字符串作为所述第四密钥。需要说明的是,当该第四密钥插入至第二响应数据中的不同位置时,则需要从该第一响应数据中的不同位置提取对应位数的字符串,然后将各个位置提取到的字符串进行组合,得到最终的字符串作为该第四密钥。
示例性的,假设该第一响应数据为:“ABCDEFG”,该第四密钥为“FG”,该预设位置为该第一响应数据的第六位(位置从左到右排列),则在将该第四密钥从所述第一响应数据中提取之后,即可以得到所述第二响应数据:“ABCDE”。
步骤S34,使用所述第四密钥,用所述第一对称加密算法对所述第二响应数据进行解密得到响应明文数据。
具体地,所述第二响应数据是由第二计算机设备使用所述第四密钥,用所述第一对称加密算法对所述响应明文数据进行加密后得到的数据。因而,在获取到所述第二响应数据之后,即可以使用所述第四密钥,用所述第一对称加密算法对所述第二响应数据进行解密,即可以得到所述响应明文数据。其中,所述响应明文数据为没有加密的明文数据。
步骤S35,对所述响应明文数据进行对应的移位处理得到最终的明文数据。
具体地,所述响应明文数据是由所述第二计算机设备对所述最终的明文数据进行移位处理后得到的数据。因而,在获取到该响应明文数据之后,对该响应明文数据进行对应的移位处理,即可以得到最终的明文数据。
在本实施例中,所述对应的移位处理为与所述第二计算机设备在对所述最终的明文数据进行移位处理时所采用的移位方式相对应的移位操作,比如,当之前的移位处理为循环左移3位的移位操作,则该对应的移位处理操作即为循环右移3位的移位操作。同理,若之前的移位处理为循环右移3位的移位操作,则该对应的移位处理操作即为循环左移3位的移位操作。
本发明本实施例所提出的数据加密方法,通过在接收到第二计算机设备返回的响应数据,对该响应数据进行解密,从而获取到最终的明文数据。
参阅图4,是本发明数据解密方法第一实施例的实施流程示意图。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。下面以数据解密装置(下文以“解密装置”简称)为执行主体进行示例性描述,所述解密装置可以应用于第二计算机设备中。在本实施例中,所述第二计算机设备作为数据的解密方。具体如下:
步骤S40,获取第一计算机设备发送的密文组数据,其中,所述密文组数据包括密钥块数据以及密文数据。
具体地,所述第一计算机设备作为数据的加密方,可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。
所述密文组数据为第一计算机设备发送给第二计算机设备的数据,所述密文数据包括加密后的待发送数据,所述密钥块数据包括加密后的密钥。
步骤S41,使用预设的服务端私钥,用预设的非对称加密算法对所述密钥块数据进行解密得到第一密钥。
具体地,所述密钥块数据是由第一计算机设备使用第二计算机设备生成的服务端公钥,用非对称加密算法对该第一密钥(对应于实施例一中的第二密钥)进行加密后得到的数据。因而,当获取到所述密钥块数据之后,使用所述服务端私钥,用所述非对称加密算法对所述密钥块数据进行解密,即可以得到该第一密钥。
在本实施例中,第二计算机设备可以预先采用所述非对称加密算法生成服务端公钥和服务端私钥,并在生成该服务端私钥之后,可以将该服务端私钥分发给第一计算机设备,以便该第一计算机设备可以采用该服务端公钥对该第一密钥进行加密。
需要说明的是,上述实施例中以对非对称加密算法进行详细描述,故在本实施例中不再赘述。
步骤S42,使用所述第一密钥,用预设的第一对称加密算法对所述密文数据进行解密得到第一明文数据;
具体地,所述密文数据是由所述第一计算机设备使用所述第一密钥,用所述第一对称加密算法(对应于实施例一中的第二对称加密算法)对所述密文数据进行加密后得到的数据。因而,当获取到所述密文数据之后,即可以使用所述第一密钥,用所述第一对称加密算法对所述密文数据进行解密,即可以得到所述第一明文数据。
步骤S43,提取所述第一明文数据的预设位置中的字符串作为第二密钥,并将所述第一明文数据中的其它字符串作为第二明文数据。
所述第一明文数据包括所述第二密钥(对应于实施例一中的第一密钥)以及所述第二明文数据,所述第二密钥位于所述第一明文数据中的预设位置,该预设位置与所述第一计算机设备将所述第二密钥插入所述第二明文数据中的位置相关联。例如,当所述第一计算机设备在将所述第二密钥插入至所述第二明文数据中时,将该第二密钥插入至所述第二明文数据中的最后面,则所述预设位置即为所述第二明文数据的最后位置。在将所述第二密钥从所述第一明文数据中提取出来之后,该第一明文数据中的其余数据即为所述第二明文数据。
在本实施例中,具体从所述第一明文数据的预设位置中提取多少位数的字符串由所述第二密钥的长度决定。例如,若该第二密钥由4位字符串组成,则在从所述第一明文数据的预设位置中提取所述第二密钥时,在找到所述预设位置之后,即可从该预设位置开始提取4位字符串作为所述第二密钥。需要说明的是,当该第二密钥插入至第二明文数据中的不同位置时,则需要从该第一明文数据中的不同位置提取对应位数的字符串,然后将各个位置提取到的字符串进行组合,得到最终的字符串作为该第二密钥。
示例性的,假设该第一明文数据为:“ABCDEFG”,该第二密钥为“FG”,则在将该第二密钥从所述第一明文数据中提取之后,即可以得到所述第二明文应数据:“ABCDE”。
步骤S44,使用所述第二密钥,用预设的第二对称加密算法对所述第二明文数进行解密得到第三明文数据。
具体地,所述第二明文数据是由第一计算机设备使用所述第二密钥,用所述第二对称加密算法(对应于实施例中的第一对称加密算法)对所述第三明文数据进行加密后得到的数据。因而,在获取到所述第二明文数据之后,即可以使用所述第二密钥,用所述第二对称加密算法对所述第二明文数据进行解密,即可以得到所述第三明文数据。其中,所述第三明文数据为没有加密的明文数据。
步骤S45,对所述第三明文数据进行对应的移位处理得到最终的明文数据。
具体地,所述第三明文数据是由所述第一计算机设备对所述最终的明文数据进行移位处理后得到的数据。因而,在获取到该第三明文数据之后,对该第三明文数据进行对应的移位处理,即可以得到最终的明文数据。
在本实施例中,所述对应的移位处理为与所述第一计算机设备在对所述最终的明文数据进行移位处理时所采用的移位方式相对应的移位操作,比如,当之前的移位处理为循环左移3位的移位操作,则该对应的移位处理操作即为循环右移3位的移位操作。同理,若之前的移位处理为循环右移3位的移位操作,则该对应的移位处理操作即为循环左移3位的移位操作。
本发明本实施例所提出的数据解密方法,通过在接收到第二计算机设备返回的响应数据,对该响应数据进行解密,从而获取到最终的明文数据。
请参阅图5,示出了本发明实施例之数据加密装置500(以下简称为“加密装置”500)的程序模块示意图。所述加密装置500可以应用于第一计算机设备中,所述第一计算机设备可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。在本实施例中,加密装置500可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述数据加密方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据加密方法在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
移位模块501,用于将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据。
具体地,所述第二计算机设备作为数据的解密方,可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。所述第一计算机设备作为数据的加密方。
所述第一数据可以为待传输至第二计算机设备的任意类型的数据。所述第一数据优选为敏感数据,比如为登录认证数据,所述登录认证数据包括用户账户名称与密码。
所述移位处理为对待发送至第二计算机设备的第一数据进行移位的操作,所述移位处理为针对所述第一数据中的任意位置中的一个或多个字符串进行移位处理的操作,例如,所述移位处理可以为将所述第一数据中的第一位和第二位字符串移动至所述第一数据中的第三位字符之后的操作,所述移位处理操作也可以为将所述第一数据中的第一位字符移动至所述第一数据的所有字符中的最后一个字符后面的操作等。
举例如下:假设所述第一数据为:“ABCDEFG”,则将所述第一数据中的第一位和第二位字符串移动至所述第一数据中的第三位字符之后得到的第二数据为:“CABDEFG”,将所述第一数据中的第一位字符移动至所述第一数据的所有字符中的最后一个字符后得到的第二数据为:“BCDEFGA”。
在本实施例中,所述移位处理优选为循环移位处理,即所述移位处理优选为循环左移处理或者循环右移处理,具体移位的位数可以预先设定,例如设定为3位,对应的,所述移位处理可以为循环左移3位,或者为循环右移3位。为了便于说明循环移位处理的操作,以下进行举例说明:
假设所述第一数据为:“ABCDEFG”,所述循环移位处理为进行循环左移3位,则经过循环左移3位处理后得到的第二数据为:“DEFGABC”。
同理,假设所述第一数据为:“ABCDEFG”,所述循环移位处理为进行循环右移3位,则经过循环右移3位处理后得到的第二数据为:“EFGABCD”。
第一加密模块502,用于通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据。
具体地,所述第一对称加密算法,也叫私钥加密算法,指的是加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。所述第一对称加密算法可以为DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法、AES算法或者为异或加密算法等。在本实施例中,所述第一对称加密算法优选为异或加密算法。
所述第一密钥可以为预先存储于所述第一计算机设备中的字符串,也可以为所述第一计算机设备通过随机算法生成的字符串,或者可以为从外界获取到的字符串。
在本发明另一实施方式中,所述加密装置500还包括:
第一生成模块,用于随机生成第一预设位数的字符串作为所述第一密钥。
具体地,可以通过调用随机函数生成一个预设位数的随机字符串。所述字符串可以为数字、字母、符号等。其中,随机函数生成随机数的方法为现有技术,在本实施例中不作赘述。
在本实施例中,所述第一预设位数的具体值可以根据实际需要进行设定,在本实施中不作限定,例如,所述第一预设位数数的值为2位,即随机生成2位字符串(假设为Zr)作为所述第一密钥key1。
示例性地,假设所述第一对称加密算法为异或加密算法,所述第二数据为上述经过循环左移3位处理后得到的第二数据“DEFGABC”,则所述第二数据经过异或加密后得到的第三数据为:“1C1D1E1F191A1B”。
插入模块503,用于将所述第一密钥插入至所述第三数据的预设位置得到第四数据。
具体地,所述预设位置为预先设定的,可以为所述第三数据的最前面,也可以为所述第三数据的最后面,甚至可以为所述第三数据的任意位置,在本实施例中不作限定,具体根据用户实际需要进行设定。
示例性的:假设所述预设位置为所述第三数据的最后面,则将第一密钥key1(以“Zr”为例)插入至所述第三数据(以“1C1D1E1F191A1B”为例)的最后面时得到的第四数据为:“1C1D1E1F191A1BZr”。
假设所述预设位置为所述第三数据的第5位,则将第一密钥key1(Zr)插入至所述第三数据(1C1D1E1F191A1B)的第5位时得到第四数据为:“1C1D1ZrE1F191A1B”。
第二加密模块504,用于通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据。
具体地,所述第二对称加密算法可以为DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法、AES算法或者为异或加密算法等,所述第二对称加密算法可以和所述第一对称加密算法为相同的算法,也可以为不同的算法。在本实施例中,所述第二对称加密算法优选为AES(Advanced Encryption Standard,高级加密标准)算法。通过AES算法可以产生一个随机密钥,即每次使用AES算法都可以生成一个随机密钥。在产生所述第二密钥之后,可以通过所述第二密钥对第四数据进行AES加密,以得到加密后的数据,即得到所述第五数据。
第三加密模块505,用于获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块。
具体地,所述第二计算机设备可以通过非对称加密算法生成公钥和私钥,所述非对称加密算法可以为国密SM2算法。在本实施例中,当所述第二计算机设备生成所述公钥之后,可以将所述公钥分发给第一计算机设备,或者也可以通过所述第二计算机设备的对应接口获取到所述公钥。
所述非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用所述密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。所述非对称加密算法可以为RSA算法、Elgamal算法、背包算法、Rabin算法、D-H算法、ECC(椭圆曲线加密算法)算法或者SM2算法等。在本实施例中,所述非对称加密算法优选为SM2算法。
在本实施例中,通过第二计算机设备的公钥对所述第二密钥进行加密,从而使得第二计算机设备可以使用其生成的私钥对所述密钥块进行解密得到所述第二密钥。
发送模块506,用于将所述第五数据以及所述密钥块发送至所述第二计算机设备。
具体地,在得到所述第五数据以及所述密钥块之后,即可以将所述第五数据以及所述密钥块发送至所述第二计算机设备,其中,所述第二计算机设备作为数据的解密方。
在本实施例中,可以将所述第五数据以及所述密钥块一起打包发送至所述第二计算机设备;也可以先将所述第五数据发送至所述第二计算机设备,然后将所述密钥块发送至所述第二计算机设备;或者也可以先将所述密钥块发送至所述第二计算机设备,然后将所述第五数据发送至所述第二计算机设备。
本发明本实施例所提出的数据加密方法,通过将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;将所述第一密钥插入至所述第三数据的预设位置得到第四数据;通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及将所述第五数据以及所述密钥块发送至所述第二计算机设备。本实施例通过结合第一对称加密算法、第二对称加密算法以及非对称加密算法对待传输的数据进行加密,从而可以提高数据传输的安全性,同时通过对待发送数据进行加密之前,先进行移位处理,从而可以进一步提高数据传输的安全性。
示例性的,在本发明另一实施方式中,所述加密装置500还包括:
第二生成模块,用于生成客户端公钥。
具体地,可以通过非对称加密算法生成客户端公钥。在一实施方式中,在生成客户端公钥时,也可以同时生成客户端私钥。
在一实施方式中,当第一数据为登录认证数据时,可以在进入登录页面时生成本次生成本次会话的客户端公钥和客户端私钥。同时,可以从所述第二计算机设备中获取其生成的服务端公钥。
所述第二加密模块504,还用于将所述客户端公钥添加至所述第四数据中;以及用于通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到第五数据。
具体地,为了提高客户端公钥传输的安全性,可以不直接将该客户端公钥发送至第二计算机设备,而是将该客户端公钥添加至所述第四数据中,以便在通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到第五数据,从而使得该客户端公钥也被加密。在本实施例中,该客户端公钥可以添加至所述第四数据的任意位置,比如,添加至第四数据的末尾。
本发明本实施例所提出的数据加密方法,通过将客户端公钥添加至第四数据中,从而使得该客户端公钥随着第四数据一块被加密,进而可以进一步提高数据传输的安全性。
示例性的,在本发明另一实施方式中,所述加密装置500还包括:
接收模块,用于生成客户端私钥,接收所述第二计算机设备返回的响应数据,所述响应数据包括响应密文数据以及密钥块数据。
具体地,客户端私钥可以通过非对称加密算法生成,在生成客户端公钥时,可以同时生成该客户端私钥;也可以先生成客户端私钥,然后生成客户端公钥;或者先生成客户端公钥,然后再生成客户端私钥,在本实施例中不作限定。
在本实施例中,所述第二计算机设备作为数据的加密方,可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。所述第一计算机设备作为数据的解密方。所述响应数据为第二计算机设备发送给第一计算机设备的数据,所述响应密文数据包括加密后的响应数据,所述密钥块数据包括加密后的密钥。
第一解密模块,用于使用所述客户端私钥,用所述非对称加密算法对所述密钥块数据进行解密得到第三密钥。
具体地,所述密钥块数据是由第二计算机设备使用第一计算机设备生成的客户端公钥,用所述非对称加密算法对第三密钥数据进行加密后得到的数据。因而,当获取到所述密钥块数据之后,使用所述客户端私钥,用所述非对称加密算法对所述密钥块数据进行解密,即可以得到所述第三密钥。
第二解密模块,用于使用所述第三密钥,用所述第二对称加密算法对所述响应密文数据进行解密得到第一响应数据。
具体地,所述响应密文数据是由所述第二计算机设备使用所述第三密钥,用所述第二对称加密算法对所述第一响应数据进行加密后得到的数据。因而,当获取到所述响应密文数据之后,即可以使用所述第三密钥,用所述第二对称加密算法对所述响应密文数据进行解密,即可以得到所述第一响应数据。
提取模块,用于提取所述第一响应数据的预设位置中的字符串作为第四密钥,并将剩余数据作为第二响应数据,其中,所述剩余数据为所述第一响应数据中除提取到的字符串之外的所有数据。
具体地,所述第一响应数据包括所述第四密钥以及所述第二响应数据,所述第四密钥位于所述第一响应数据中的预设位置,该预设位置与所述第二计算机设备将所述第四密钥插入所述第二响应数据中的位置相关联。例如,当所述第二计算机设备在将所述第四密钥插入至所述第二响应数据中时,将该第四密钥插入至所述第二响应数据中的最后面,则所述预设位置即为所述第二响应数据的最后位置。在将所述第四密钥从所述第一响应数据中提取出来之后,该第一响应数据中的剩余数据即为所述第二响应数据。
在本实施例中,具体从所述第一响应数据的预设位置中提取多少位数的字符串由所述第四密钥的长度决定。例如,若该第四密钥由4位字符串组成,则在从所述第一响应数据的预设位置中提取所述第四密钥时,在找到所述预设位置之后,即可从该预设位置开始提取4位字符串作为所述第四密钥。需要说明的是,当该第四密钥插入至第二响应数据中的不同位置时,则需要从该第一响应数据中的不同位置提取对应位数的字符串,然后将各个位置提取到的字符串进行组合,得到最终的字符串作为该第四密钥。
示例性的,假设该第一响应数据为:“ABCDEFG”,该第四密钥为“FG”,该预设位置为该第一响应数据的第六位(位置从左到右排列),则在将该第四密钥从所述第一响应数据中提取之后,即可以得到所述第二响应数据:“ABCDE”。
第三解密模块,用于使用所述第四密钥,用所述第一对称加密算法对所述第二响应数据进行解密得到响应明文数据。
具体地,所述第二响应数据是由第二计算机设备使用所述第四密钥,用所述第一对称加密算法对所述响应明文数据进行加密后得到的数据。因而,在获取到所述第二响应数据之后,即可以使用所述第四密钥,用所述第一对称加密算法对所述第二响应数据进行解密,即可以得到所述响应明文数据。其中,所述响应明文数据为没有加密的明文数据。
处理模块,用于对所述响应明文数据进行对应的移位处理得到最终的明文数据。
具体地,所述响应明文数据是由所述第二计算机设备对所述最终的明文数据进行移位处理后得到的数据。因而,在获取到该响应明文数据之后,对该响应明文数据进行对应的移位处理,即可以得到最终的明文数据。
在本实施例中,所述对应的移位处理为与所述第二计算机设备在对所述最终的明文数据进行移位处理时所采用的移位方式相对应的移位操作,比如,当之前的移位处理为循环左移3位的移位操作,则该对应的移位处理操作即为循环右移3位的移位操作。同理,若之前的移位处理为循环右移3位的移位操作,则该对应的移位处理操作即为循环左移3位的移位操作。
本发明本实施例所提出的数据加密方法,通过在接收到第二计算机设备返回的响应数据,对该响应数据进行解密,从而获取到最终的明文数据。
请参阅图6,示出了本发明实施例之数据解密装置600(以下简称为“解密密装置”600)的程序模块示意图。所述解密装置600可以应用于第二计算机设备中,所述第二计算机设备可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。在本实施例中,所述第二计算机设备作为数据的解密方。加密装置600可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述数据解密方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据加密方法在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
获取模块601,用于获取第一计算机设备发送的密文组数据,其中,所述密文组数据包括密钥块数据以及密文数据。
具体地,所述第一计算机设备作为数据的加密方,可以是移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、服务器等具有数据传输功能的设备。
所述密文组数据为第一计算机设备发送给第二计算机设备的数据,所述密文数据包括加密后的待发送数据,所述密钥块数据包括加密后的密钥。
第一解密模块602,用于使用预设的服务端私钥,用预设的非对称加密算法对所述密钥块数据进行解密得到第一密钥。
具体地,所述密钥块数据是由第一计算机设备使用第二计算机设备生成的服务端公钥,用非对称加密算法对该第一密钥(对应于实施例一中的第二密钥)进行加密后得到的数据。因而,当获取到所述密钥块数据之后,使用所述服务端私钥,用所述非对称加密算法对所述密钥块数据进行解密,即可以得到该第一密钥。
在本实施例中,第二计算机设备可以预先采用所述非对称加密算法生成服务端公钥和服务端私钥,并在生成该服务端私钥之后,可以将该服务端私钥分发给第一计算机设备,以便该第一计算机设备可以采用该服务端公钥对该第一密钥进行加密。
需要说明的是,上述实施例中以对非对称加密算法进行详细描述,故在本实施例中不再赘述。
第二解密模块603,用于使用所述第一密钥,用预设的第一对称加密算法对所述密文数据进行解密得到第一明文数据;
具体地,所述密文数据是由所述第一计算机设备使用所述第一密钥,用所述第一对称加密算法(对应于实施例一中的第二对称加密算法)对所述密文数据进行加密后得到的数据。因而,当获取到所述密文数据之后,即可以使用所述第一密钥,用所述第一对称加密算法对所述密文数据进行解密,即可以得到所述第一明文数据。
提取模块604,用于提取所述第一明文数据的预设位置中的字符串作为第二密钥,并将所述第一明文数据中的其它字符串作为第二明文数据。
所述第一明文数据包括所述第二密钥(对应于实施例一中的第一密钥)以及所述第二明文数据,所述第二密钥位于所述第一明文数据中的预设位置,该预设位置与所述第一计算机设备将所述第二密钥插入所述第二明文数据中的位置相关联。例如,当所述第一计算机设备在将所述第二密钥插入至所述第二明文数据中时,将该第二密钥插入至所述第二明文数据中的最后面,则所述预设位置即为所述第二明文数据的最后位置。在将所述第二密钥从所述第一明文数据中提取出来之后,该第一明文数据中的其余数据即为所述第二明文数据。
在本实施例中,具体从所述第一明文数据的预设位置中提取多少位数的字符串由所述第二密钥的长度决定。例如,若该第二密钥由4位字符串组成,则在从所述第一明文数据的预设位置中提取所述第二密钥时,在找到所述预设位置之后,即可从该预设位置开始提取4位字符串作为所述第二密钥。需要说明的是,当该第二密钥插入至第二明文数据中的不同位置时,则需要从该第一明文数据中的不同位置提取对应位数的字符串,然后将各个位置提取到的字符串进行组合,得到最终的字符串作为该第二密钥。
示例性的,假设该第一明文数据为:“ABCDEFG”,该第二密钥为“FG”,则在将该第二密钥从所述第一明文数据中提取之后,即可以得到所述第二明文应数据:“ABCDE”。
第三解密模块605,用于使用所述第二密钥,用预设的第二对称加密算法对所述第二明文数进行解密得到第三明文数据。
具体地,所述第二明文数据是由第一计算机设备使用所述第二密钥,用所述第二对称加密算法(对应于实施例中的第一对称加密算法)对所述第三明文数据进行加密后得到的数据。因而,在获取到所述第二明文数据之后,即可以使用所述第二密钥,用所述第二对称加密算法对所述第二明文数据进行解密,即可以得到所述第三明文数据。其中,所述第三明文数据为没有加密的明文数据。
移位模块606,用于对所述第三明文数据进行对应的移位处理得到最终的明文数据。
具体地,所述第三明文数据是由所述第一计算机设备对所述最终的明文数据进行移位处理后得到的数据。因而,在获取到该第三明文数据之后,对该第三明文数据进行对应的移位处理,即可以得到最终的明文数据。
在本实施例中,所述对应的移位处理为与所述第一计算机设备在对所述最终的明文数据进行移位处理时所采用的移位方式相对应的移位操作,比如,当之前的移位处理为循环左移3位的移位操作,则该对应的移位处理操作即为循环右移3位的移位操作。同理,若之前的移位处理为循环右移3位的移位操作,则该对应的移位处理操作即为循环左移3位的移位操作。
本发明本实施例所提出的数据加密方法,通过在接收到第二计算机设备返回的响应数据,对该响应数据进行解密,从而获取到最终的明文数据。
参阅图7,是本发明实施例之计算机设备700的硬件架构示意图。在本实施例中,所述计算机设备700是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图所示,所述计算机设备700至少包括,但不限于,可通过装置总线相互通信连接存储器701、处理器702、网络接口703。其中:
本实施例中,存储器701至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如所述计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如所述计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。本实施例中,存储器701通常用于存储安装于计算机设备700的操作装置和各类应用软件,例如数据加密装置500或者数据解密装置600的程序代码等。此外,存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。所述处理器702通常用于控制计算机设备700的总体操作。本实施例中,处理器702用于运行存储器701中存储的程序代码或者处理数据,例如运行数据加密装置500或者数据解密装置600,以实现上述各个实施例中的数据加密方法。
所述网络接口703可包括无线网络接口或有线网络接口,所述网络接口703通常用于在所述计算机设备700与其他电子装置之间建立通信连接。例如,所述网络接口703用于通过网络将所述计算机设备700与外部终端相连,在所述计算机设备700与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯装置(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器701中的所述数据加密装置500或者数据解密装置600还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器701中,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明之数据加密方法或者数据解密方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据加密装置500或数据解密装置600,以被处理器执行时实现本发明之数据加密方法或者数据解密方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种数据加密方法,应用于第一计算机设备中,其特征在于,包括以下步骤:
将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;
通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;
将所述第一密钥插入至所述第三数据的预设位置得到第四数据;
通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;
获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及
将所述第五数据以及所述密钥块发送至所述第二计算机设备;
所述数据加密方法还包括:
生成客户端公钥,所述客户端公钥用于作为所述第二计算机设备对数据进行加密的密钥;
所述用所述第二密钥对所述第四数据进行加密得到第五数据的步骤包括:
将所述客户端公钥添加至所述第四数据中;
用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到所述第五数据。
2.如权利要求1所述的数据加密方法,其特征在于,所述数据加密方法还包括:
随机生成第一预设位数的字符串作为所述第一密钥。
3.如权利要求1所述的数据加密方法,其特征在于,所述数据加密方法还包括:
生成客户端私钥,所述客户端私钥用于作为所述第一计算机设备对数据进行解密的密钥;
接收所述第二计算机设备返回的响应数据,所述响应数据包括响应密文数据以及密钥块数据;
使用所述客户端私钥,用所述非对称加密算法对所述密钥块数据进行解密得到第三密钥;
使用所述第三密钥,用所述第二对称加密算法对所述响应密文数据进行解密得到第一响应数据;
提取所述第一响应数据的预设位置中的字符串作为第四密钥,并将剩余数据作为第二响应数据,其中,所述剩余数据为所述第一响应数据中除提取到的字符串之外的所有数据;
使用所述第四密钥,用所述第一对称加密算法对所述第二响应数据进行解密得到响应明文数据;
对所述响应明文数据进行对应的移位处理得到最终的明文数据。
4.如权利要求1所述的数据加密方法,其特征在于,所述移位处理为循环左移处理或者循环右移处理。
5.一种数据解密方法,应用于第二计算机设备,其特征在于,包括以下步骤:
获取第一计算机设备发送的密文组数据,其中,所述密文组数据包括密钥块数据以及密文数据;
使用预设的服务端私钥,用预设的非对称加密算法对所述密钥块数据进行解密得到第一密钥,所述服务端私钥用于作为所述第二计算机设备对数据进行解密的密钥;
使用所述第一密钥,用预设的第一对称加密算法对所述密文数据进行解密得到第一明文数据及客户端公钥,所述客户端公钥用于作为所述第二计算机设备对数据进行加密的密钥;
提取所述第一明文数据的预设位置中的字符串作为第二密钥,并将所述第一明文数据中的其它字符串作为第二明文数据;
使用所述第二密钥,用预设的第二对称加密算法对所述第二明文数据进行解密得到第三明文数据;
对所述第三明文数据进行对应的移位处理得到最终的明文数据。
6.一种数据加密装置,应用于第一计算机设备中,其特征在于,包括:
移位模块,用于将待发送至第二计算机设备的第一数据进行移位处理,得到第二数据;
第一加密模块,用于通过预设的第一对称加密算法,用第一密钥对所述第二数据进行加密得到第三数据;
插入模块,用于将所述第一密钥插入至所述第三数据的预设位置得到第四数据;
第二加密模块,用于通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对所述第四数据进行加密得到第五数据;
第三加密模块,用于获取所述第二计算机设备生成的公钥,并通过预设的非对称加密算法,用所述公钥对所述第二密钥进行加密得到密钥块;及
发送模块,用于将所述第五数据以及所述密钥块发送至所述第二计算机设备;
第二生成模块,用于生成客户端公钥,所述客户端公钥用于作为所述第二计算机设备对数据进行加密的密钥;
所述第二加密模块,还用于将所述客户端公钥添加至所述第四数据中;以及用于通过预设的第二对称加密算法产生第二密钥,并通过所述第二对称加密算法,用所述第二密钥对包括所述客户端公钥的第四数据进行加密得到第五数据。
7.一种数据解密装置,应用于第二计算机设备中,其特征在于,包括:
获取模块,用于获取第一计算机设备发送的密文组数据,其中,所述密文组数据包括密钥块数据以及密文数据,服务端私钥用于作为所述第二计算机设备对数据进行解密的密钥;
第一解密模块,用于使用预设的服务端私钥,用预设的非对称加密算法对所述密钥块数据进行解密得到第一密钥;
第二解密模块,用于使用所述第一密钥,用预设的第一对称加密算法对所述密文数据进行解密得到第一明文数据及客户端公钥,所述客户端公钥用于作为所述第二计算机设备对数据进行加密的密钥;
提取模块,用于提取所述第一明文数据的预设位置中的字符串作为第二密钥,并将所述第一明文数据中的其它字符串作为第二明文数据;
第三解密模块,用于使用所述第二密钥,用预设的第二对称加密算法对所述第二明文数据进行解密得到第三明文数据;
移位模块,用于对所述第三明文数据进行对应的移位处理得到最终的明文数据。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述的数据加密方法的步骤或实现权利要求5 所述的数据解密方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-4中任一项所述的数据加密方法的步骤或如权利要求5所述的数据解密方法的步骤。
CN202010012715.4A 2020-01-07 2020-01-07 数据加密、解密方法、装置及计算机设备 Active CN111245808B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010012715.4A CN111245808B (zh) 2020-01-07 2020-01-07 数据加密、解密方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010012715.4A CN111245808B (zh) 2020-01-07 2020-01-07 数据加密、解密方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN111245808A CN111245808A (zh) 2020-06-05
CN111245808B true CN111245808B (zh) 2022-06-21

Family

ID=70869186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010012715.4A Active CN111245808B (zh) 2020-01-07 2020-01-07 数据加密、解密方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN111245808B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111967023A (zh) * 2020-07-03 2020-11-20 浙江数链科技有限公司 数据加密和解密方法、装置、系统以及可读存储介质
CN113452508B (zh) * 2021-08-27 2021-12-10 北京华云安信息技术有限公司 数据加密方法、装置、设备和计算机可读存储介质
CN115022035A (zh) * 2022-06-01 2022-09-06 广汽埃安新能源汽车有限公司 一种can通信加密方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429753A (zh) * 2015-12-30 2016-03-23 宇龙计算机通信科技(深圳)有限公司 提高VoLTE通信安全性的语音数据方法、系统及移动终端
CN108390759A (zh) * 2018-03-21 2018-08-10 平安普惠企业管理有限公司 代码加密、解密方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811680B2 (en) * 2015-06-04 2017-11-07 Microsoft Technology Licensing, Llc Secure storage and sharing of data by hybrid encryption using predefined schema

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429753A (zh) * 2015-12-30 2016-03-23 宇龙计算机通信科技(深圳)有限公司 提高VoLTE通信安全性的语音数据方法、系统及移动终端
CN108390759A (zh) * 2018-03-21 2018-08-10 平安普惠企业管理有限公司 代码加密、解密方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN111245808A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
AU2019271965B2 (en) POS System with white box encryption key sharing
US9152805B2 (en) Security device
CN111245808B (zh) 数据加密、解密方法、装置及计算机设备
CN111245802B (zh) 数据传输安全控制方法、服务器以及终端
TWI489847B (zh) 資料加密方法、資料驗證方法及電子裝置
KR102383829B1 (ko) 안전하게 메시지를 교환하기 위한 방법, 이 방법을 구현하기위한 장치 및 시스템
US8904195B1 (en) Methods and systems for secure communications between client applications and secure elements in mobile devices
CN107005577B (zh) 指纹数据的处理方法及处理装置
CN103455446A (zh) 用于实施加密方法的设备及对此的运行方法
US6996233B2 (en) System and method for encrypting and verifying messages using three-phase encryption
KR20130093557A (ko) 적어도 하나의 암호화 명령어를 포함하는 소프트웨어 애플리케이션의 협력 실행을 위한 시스템, 장치, 및 방법
CN113890731A (zh) 一种密钥管理方法、装置、电子设备及存储介质
Olumide et al. A hybrid encryption model for secure cloud computing
EP3188000A1 (en) System and method for hiding a cryptographic secret using expansion
CN102598014B (zh) 机密地提供软件组件的方法和系统
CN115348083A (zh) 固件加解密方法、装置、计算机设备及可读存储介质
US11924337B2 (en) Sensitive data management system
CN112149166B (zh) 非常规密码保护方法及银行智能机器
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
US8130945B2 (en) Encrypted cryptography system
CN111212068B (zh) 一种输入法对文字加解密的方法
CN112069472A (zh) 一种用户登录认证方法及系统
JP2002232410A (ja) 暗号化データの通信装置および通信方法
CN113162766B (zh) 一种密钥分量的密钥管理方法和系统
CN116866029B (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
GR01 Patent grant
GR01 Patent grant