CN116668147A - 数据传输方法、电子设备及计算机可读存储介质 - Google Patents

数据传输方法、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116668147A
CN116668147A CN202310708891.5A CN202310708891A CN116668147A CN 116668147 A CN116668147 A CN 116668147A CN 202310708891 A CN202310708891 A CN 202310708891A CN 116668147 A CN116668147 A CN 116668147A
Authority
CN
China
Prior art keywords
data
end server
encrypted
preset
key
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
Application number
CN202310708891.5A
Other languages
English (en)
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.)
CRSC Institute of Smart City Research and Design Co Ltd
Original Assignee
CRSC Institute of Smart City Research and Design Co Ltd
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 CRSC Institute of Smart City Research and Design Co Ltd filed Critical CRSC Institute of Smart City Research and Design Co Ltd
Priority to CN202310708891.5A priority Critical patent/CN116668147A/zh
Publication of CN116668147A publication Critical patent/CN116668147A/zh
Pending legal-status Critical Current

Links

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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/40Network security protocols

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本公开提供一种数据传输方法、电子设备及计算机可读存储介质。所述数据传输方法包括:获取传输数据;通过预设密钥对所述传输数据进行加密,得到加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;将所述加密数据发送至后端服务器。将数据加密后传输,保证了前、后端服务器交互数据的一致性,提高了前、后端服务器交互数据的安全性及稳定性。

Description

数据传输方法、电子设备及计算机可读存储介质
技术领域
本公开涉及数据加密技术领域,具体地,涉及一种数据传输方法、电子设备及计算机可读存储介质。
背景技术
传统的前后端一体化模式已经发展为目前较为普遍的前后端分离模式,在当前应用开发过程中,大多数系统采用这种前后端分离框架,而在前后端数据的交互过程中,数据基本上都是通过明文传输的,如果这些请求被拦截,则会导致数据泄密或存在被篡改风险,即这种模式缺乏安全方面的规范。
发明内容
本公开实施例的目的在于提供一种数据传输方法、电子设备及计算机可读存储介质,以至少部分解决上述技术问题。
第一方面,本公开实施例提供了一种数据传输方法,包括:
获取传输数据;
通过预设密钥对所述传输数据进行加密,得到加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;
将所述加密数据发送至后端服务器。
在一些实施例中,所述预设密钥与第二公共参数、预设原根、以及预设素数相关。
在一些实施例中,在通过预设密钥对所述传输数据进行加密,得到加密数据之前,所述数据传输方法还包括:
生成私有随机数;
根据预设原根、预设素数以及所述私有随机数,确定第一公共参数;
将所述第一公共参数发送至后端服务器;
接收第二公共参数;
根据所述第二公共参数、预设原根以及预设素数,确定预设密钥。
在一些实施例中,所述通过预设密钥对所述传输数据进行加密,得到加密数据,包括:
对所述预设密钥进行密钥扩展,得到N个第一子密钥;N为正整数;
通过N个所述第一子密钥,对所述传输数据进行加密处理,得到中间加密数据;
将所述前端服务器标识以及所述前端服务器所登录的用户的身份标识作为所述中间加密数据的字符前缀添加至所述中间加密数据中,得到所述加密数据。
在一些实施例中,所述通过N个所述第一子密钥,对所述传输数据进行加密处理,得到中间加密数据,包括:
将所述传输数据与第1个第一子密钥进行异或操作,得到第一密文数据;
利用待加密数据与第i个第一子密钥进行一级加密处理,得到相应的第二密文数据,其中,当i=2时,待加密数据为所述第一密文数据,当i>2时,所述待加密数据为利用第i-1个第一子密钥得到的第二密文数据;i依次取自2至(N-1);
利用所述第二密文数据与第N个第一子密钥进行二级加密处理,得到中间加密数据;
其中,利用待加密数据与第i个第一子密钥进行一级加密处理,得到相应的第二密文数据,包括:
将所述待加密数据进行字节代换处理,得到第一数据;
对所述第一数据的每一行均进行移位处理,得到第二数据;
对所述第二数据的每一列均进行矩阵乘处理,得到第三数据;
将所述第三数据与第i个第一子密钥进行异或操作,得到第二密文数据;
其中,利用所述第二密文数据与第N个第一子密钥进行二级加密处理,得到中间加密数据,包括:
将所述第二密文数据进行字节代换处理,得到第四数据;
对所述第四数据的每一行均进行移位处理,得到第五数据;
将所述第五数据与第N个第一子密钥进行异或操作,得到中间加密数据。
第二方面,本公开实施例提供了一种数据传输方法,包括:
接收加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;
根据所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,对所述加密数据进行合法性验证;
在验证通过的情况下,对所述加密数据进行解密,得到传输数据。
在一些实施例中,所述根据所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,对所述加密数据进行合法性验证,包括:
从所述加密数据中提取前端服务器标识以及所述前端服务器所登录的用户的身份标识;
在所述前端服务器标识和所述前端服务器所登录的用户的身份标识与预设标识库中的标识相匹配的情况下,验证通过,否则验证不通过。
在一些实施例中,所述对所述加密数据进行解密,得到所述传输数据,包括:
对预设密钥进行密钥扩展,得到N个第一子密钥;N为正整数;
去除所述加密数据中所携带的所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,得到过程加密数据;
通过N个所述第一子密钥,对所述过程加密数据进行解密处理,得到传输数据。
第三方面,本公开实施例提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意一项所述的数据传输方法、或第二方面中任意一项所述的数据传输方法;
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任意一项所述的数据传输方法、或第二方面中任意一项所述的数据传输方法。
本公开实施例提供的数据传输方法中,通过预设密钥对传输数据进行加密,得到携带有前端服务器标识和前端服务器所登录的用户的身份标识的加密数据,前端服务器将加密数据发送至后端服务器,后端服务器基于前端服务器标识和身份标识验证加密数据的合法性,在合法性验证通过的情况下,再对加密数据进行解密,以避免后端服务器被注入攻击、跨站脚本攻击等安全隐患,其中,在加密数据在前、后端服务器传输过程被拦截的情况下,可以有效地避免数据泄密或被篡改,保证了前、后端服务器交互数据的一致性,提高了前、后端服务器交互数据的安全性及稳定性。
附图说明
图1是本公开实施例提供的一种数据传输方法的流程图;
图2是本公开实施例提供的另一种数据传输方法的流程图;
图3是本公开实施例一提供的一种数据传输方法的示意图;
图4是本公开实施例二提供的又一数据传输方法的示意图;
图5是本公开实施例提供的一种电子设备的示意图;
图6是本公开实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本公开的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
前后端分离框架在考虑到组件之间的耦合性问题的情况下,忽略了安全方面的规范。针对前后端分离框架的数据传输特点,本公开实施例提供了一种结合加密算法以实现前后端安全交互的方法,目的是提供一种能够避免前、后端服务器之间传输数据时被拦截而导致的数据泄密或被篡改问题,提高了前、后端服务器交互数据的安全性及稳定性的数据传输方法;该数据传输方法可以基于Java语言技术实现。
第一方面,本公开实施例提供一种数据传输方法,如图1所示,所述数据传输方法包括如下步骤:
步骤101,获取传输数据;
步骤102,通过预设密钥对所述传输数据进行加密,得到加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;
步骤103,将所述加密数据发送至后端服务器。
本公开实施例中,预设密钥用于对数据进行加密,预设密钥应当保密,不能泄露给第三方,预设密钥利用预设原根在数学运算上的特性,由前端服务器与后端服务器协商配置得到;在一些实施例中,预设密钥可以是PEM(Privacy-Enhanced Mail,隐私增强邮件)格式的,即以"-----BEGIN PRIVATE KEY-----"开始,"-----END PRIVATE KEY-----"结束,预设密钥由Base64编码得到的二进制文本;也可以是DER格式(Distinguished EncodingRules,可分辩编码规则),本公开不以此为限制。
通过预设密钥加密后的加密数据中携带有前端服务器标识以及前端服务器所登录的用户的身份标识,前端服务器标识与身份标识可供后端服务器验证加密数据的合法性,避免了后端服务器误接收不属于其指定接受范围内的数据,防止了恶意攻击或误操作等,提高了前、后端服务器交互数据的安全性。
另外,在一些实施例中,传输数据可以是前端服务器采集的用户输入数据,该数据可由用户通过表单、文本框或其他交互方式输入的数据;也可以是元数据,如HTTP(HyperText Transfer Protocol,超文本传输协议)请求头信息,用于后端服务器确定前端服务器的用户的设备类型、浏览器版本以及访问来源等信息;还可以是其他满足前端服务器和后端服务器所需的功能与交互需求的数据。本公开不以此为限制。
通过预设密钥对传输数据进行加密,得到携带有前端服务器标识和前端服务器所登录的用户的身份标识的加密数据,前端服务器将加密数据发送至后端服务器,后端服务器基于前端服务器标识和身份标识验证加密数据的合法性,在合法性验证通过的情况下,再对加密数据进行解密,以避免后端服务器被注入攻击、跨站脚本攻击等安全隐患,其中,在加密数据在前、后端服务器传输过程被拦截的情况下,可以有效地避免数据泄密或被篡改,保证了前、后端服务器交互数据的一致性,提高了前、后端服务器交互数据的安全性及稳定性。本公开实施例对预设密钥不做特殊限定。
在一些实施例中,预设密钥与第二公共参数、预设原根、以及预设素数相关。其中,预设原根与预设素数均为正整数,预设原根的定义为:给定正整数p,若存在整数g(1<g<p),使得对于1到p-1之间的任意整数k,通过公式gk mod p≠1的运算后,能得到从1到p-1所有整数,且每个整数对应一个幂次,则整数g为模p的一个原根;而预设素数是预先配置的大于1且仅能被1和其本身整除的自然数,该预设素数只有两个正因子,即1与其本身,其取值越大,预设密钥加密后所得到的加密数据的安全性则越高;依据原根的特殊性和预设素数的安全性,可使得前后端双方在不用传输预设密钥的情况下,仅通过交互各自的公共参数确定预设密钥。
相应地,在一些实施例中,步骤102之前,所述数据传输方法还包括:
生成私有随机数;
根据预设原根、预设素数以及所述私有随机数,确定第一公共参数;
将所述第一公共参数发送至后端服务器;
接收第二公共参数;
根据所述第二公共参数、预设原根以及预设素数,确定预设密钥。
本公开的实施例中,数据传输方法还包括确定预设密钥,其中,私有随机数是在前端服务器与后端服务器相互协商预设密钥过程中,各自生成的一个随机数。私有随机数是需要保密的,用于计算公共参数。私有随机数无法被预测且长度应大于预设长度,以防止被破解,保证了安全性。在一些实施例中,私有随机数可以使用CSPRNG(CryptographicallySecure Pseudorandom Number Generator,密码学安全的随机数生成器)来产生,本公开实施例对私有随机数的生成不做特殊限定。进一步的,生成的私有随机数在公共参数交换过程完成后,被移除或覆盖,以保证安全。
前端服务器通过私有随机数生成第一公共参数,同理,后端服务器根据其生成的另一私有随机数生成第二公共参数,第一公共参数和第二公共参数是双方生成的可公开的参数,可称为公钥;第一公共参数和第二公共参数可用于公开传输,即便被攻击者截获,由于生成公共参数过程中离散对数问题的困难性,无法从公共参数推导出私有随机数;第一公共参数和第二公共参数还可以用于计算预设密钥,双方收到对方的公共参数之后,就可以用自己的私有随机数与对方的公共参数进行运算,计算得到预设密钥,双方计算出的预设密钥是相同的,可以用于后续的加密或解密操作。
在一些实施例中,前端服务器与后端服务器均随机生成一私有随机数,该私有随机数应当保密,不可泄露给对端和第三方;该私有随机数可以是1至(p-1)范围内的任意正整数,其中,p为预设素数;值得说明的是,为保证协商过程中预设密钥的安全性,该两端的私有随机数的生成过程应当保证随机性;前端服务器通过公式K1=ga mod p,计算得到第一公共参数K1,其中,g为预设原根,p为预设素数,a为前端服务器的私有随机数;同理,后端服务器通过公式K2=gb mod p,计算得到第二公共参数K2,b为后端服务器的私有随机数;
前端服务器与后端服务器交换各自计算得到的公共参数,前端服务器通过公式sharedkey1=(K2)amod p,确定预设密钥;同理,后端服务器通过公式sharedkey2=(K1)bmodp,确定预设密钥;由于数学关系可知,sharedkey1=sharedkey2,即前端服务器和后端服务器可以得到相同的预设密钥。
在一个示例中,前端服务器与后端服务器的预设素数为p=253,预设原根为g=3;前端服务器随机生成私有随机数为a=8,后端服务器随机生成私有随机数为b=17;可以计算得到第一公共参数为K1=ga mod p=(38)mod 253=75,第二公共参数为K2=gb mod p=(317)mod 253=217,前端服务器与后端服务器交互第一公共参数和第二公共参数;
前端服务器根据第二公共参数、预设原根以及预设素数,确定的预设密钥为sharedkey1=(K2)amod p=(217)8mod 253=168,同理,后端服务器根据第一公共参数、预设原根以及预设素数,确定的预设密钥为sharedkey2=(K1)bmod p=(75)17mod 253=168;可见,两端得到的预设密钥为相同的。
通过上述过程确定预设密钥,进一步对传输数据进行加密,其加密过程具体为步骤102,步骤102包括:
步骤1021,对所述预设密钥进行密钥扩展,得到N个第一子密钥;N为正整数;
步骤1022,通过N个所述第一子密钥,对所述传输数据进行加密处理,得到中间加密数据;
步骤1023,将所述前端服务器标识以及所述前端服务器所登录的用户的身份标识作为所述中间加密数据的字符前缀添加至所述中间加密数据中,得到所述加密数据。
本公开的实施例中,前端服务器与后端服务器基于相同的密钥扩展方式对预设密钥进行密钥扩展,可以分别得到N个第一子密钥,其中,密钥扩展指的是依据预设密钥生成多个子密钥的过程,从给定的预设密钥生成N个独立且安全的子密钥,这些子密钥可以应用于加密和/或解密,其中N越大,加密的安全性越高,前端服务器与后端服务器各自的N个第一子密钥相同;前端服务器将前端服务器标识以及前端服务器所登录的用户的身份标识添加至中间加密数据字符前缀,得到加密数据,其中,前端服务器标识为后端服务器指示了加密数据的数据发送端的服务器,前端服务器所登录的用户的身份标识为后端服务器指示了发送加密数据的具体用户;在一些情况下,后端服务器可能会接收到不属于其指定接受范围内的数据,这些数据可能会导致后端服务器存在被恶意攻击、数据内容被修改等风险,因而,后端服务器对接受到的数据均进行合法性验证,以提高分离式的前后端服务器之间运行的安全性。
在一些实施例中,步骤1022包括:
步骤10221,将所述传输数据与第1个第一子密钥进行异或操作,得到第一密文数据;
步骤10222,利用待加密数据与第i个第一子密钥进行一级加密处理,得到相应的第二密文数据,其中,当i=2时,待加密数据为所述第一密文数据,当i>2时,所述待加密数据为利用第i-1个第一子密钥得到的第二密文数据;i依次取自2至(N-1);
步骤10223,利用所述第二密文数据与第N个第一子密钥进行二级加密处理,得到中间加密数据;
其中,步骤10222包括:
将所述待加密数据进行字节代换处理,得到第一数据;
对所述第一数据的每一行均进行移位处理,得到第二数据;
对所述第二数据的每一列均进行矩阵乘处理,得到第三数据;
将所述第三数据与第i个第一子密钥进行异或操作,得到第二密文数据;
其中,步骤10223包括:
将所述第二密文数据进行字节代换处理,得到第四数据;
对所述第四数据的每一行均进行移位处理,得到第五数据;
将所述第五数据与第N个第一子密钥进行异或操作,得到中间加密数据。
本公开的实施例中,N个第一子密钥中的第1个第一子密钥用于与传输数据进行异或操作,得到第一密文数据;第2至(N-1)个第一子密钥用于执行一级加密处理,其中,字节代换处理具体包括按照预设字节代换库对第一密文数据中的部分或全部字节进行替换,其中,该预设字节代换库与字节代换规则为前端服务器与后端服务器共有的,以便于后端服务器进行解密;移位处理指的是对第一数据的矩阵进行行移位,将每一行循环移位,从而实现混淆;矩阵乘处理用于实现对第二数据的矩阵的列混合,将当前矩阵的每一列与常量矩阵相乘,从而进一步混淆数据;第N个第一子密钥用于与第N-1个第一子密钥得到的密文数据进行异或操作,得到中间加密数据。
同理,由于后端服务器具有相同的预设字节代换库和预设密钥,可以通过对中间加密数据执行逆操作还原得到传输数据。
在一些实施例中,数据传输方法还包括:
接收所述后端服务器根据所述加密数据反馈的加密响应数据;
根据所述预设密钥对所述加密响应数据进行解密,得到业务响应数据;
基于所述业务响应数据进行渲染。
本公开的实施例中,前端服务器接受加密响应数据,该加密响应数据携带后端服务器标识以及后端服务器所登录的用户的身份标识,以避免前端服务器误接收不属于其指定接受范围内的数据,根据业务响应数据进行渲染。
在分离式的前端服务器与后端服务器的数据传输过程中,通过对明文的传输数据加密,有效防止了数据被拦截而导致的泄密问题,同时在加密数据中携带服务器标识与用户标识,避免了数据被篡改,从而保证了前、后端服务器交互数据的一致性,提高了前、后端服务器交互数据的安全性及稳定性。
第二方面,本公开实施例提供了一种数据传输方法,如图2所示,包括:
步骤201,接收加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;
步骤202,根据所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,对所述加密数据进行合法性验证;
步骤203,在验证通过的情况下,对所述加密数据进行解密,得到传输数据。
本公开的实施例中,后端服务器接收到加密数据后,先进行验证,验证该加密数据是否是指定接受范围内的数据,以防止注入攻击、跨站脚本攻击等安全隐患。
在一些实施例中,步骤202包括:
步骤2021,从所述加密数据中提取前端服务器标识以及所述前端服务器所登录的用户的身份标识;
步骤2022,在所述前端服务器标识和所述前端服务器所登录的用户的身份标识与预设标识库中的标识相匹配的情况下,验证通过,否则验证不通过。
本公开的实施例中,提取加密数据的前缀字符中的前端服务器标识以及所述前端服务器所登录的用户的身份标识,后端服务器维护有预设标识库,该预设标识库中指示了可访问或传输数据的前端服务器的标识号与用户的身份标识,该预设标识库可以是预先配置的,也可以是周期性更新的,该预设标识库是需要保密的,以防止伪造标识号或篡改;
在前端服务器标识和前端服务器所登录的用户的身份标识均与预设标识库中的标识相匹配的情况下验证通过。
在一些实施例中,步骤203包括:
步骤2031,对预设密钥进行密钥扩展,得到N个第一子密钥;N为正整数;
步骤2032,去除所述加密数据中所携带的所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,得到过程加密数据;
步骤2033,通过N个所述第一子密钥,对所述过程加密数据进行解密处理,得到传输数据。
该实施例中,预设密钥的密钥扩展方式与前端服务器的扩展方式相同,扩展得到的均为N个第二子密钥,将步骤202中识别得到的前端服务器标识以及所述前端服务器所登录的用户的身份标识去除,通过N个第二子密钥对过程加密数据进行解密,这里的解密过程与前端服务器的加密过程为逆操作,下面对解密过程进行说明:
步骤20331,将过程加密数据进行一级解密处理,得到第三密文数据;
步骤20332,利用待解密数据与第j个第一子密钥进行二级解密处理,得到相应的第四密文数据,其中,当j=N-1时,待解密数据为第三密文数据,当N-1>j时,待解密数据为利用第j+1个第一子密钥得到的第四密文数据;j依次取自2至(N-1);
步骤20333,将第2个第一子密钥得到的第四密文数据进行逆异或操作,得到传输数据;
其中,步骤20331包括:
将过程加密数据进行逆异或操作,得到第六数据;
对第六数据的每一行均进行反向移位处理,得到第七数据;
将第七数据进行字节反代换处理,得到第三密文数据。
其中,步骤20332包括:
将待解密数据与第j个第一子密钥进行逆异或操作,得到第八数据;
对第八数据的每一列均进行逆向矩阵乘处理,得到第九数据;
对第九数据的每一行均进行反向移位处理,得到第十数据;
将第十数据进行字节反代换处理,得到第四密文数据。
在一些实施例中,数据传输方法还包括:
根据所述传输数据进行业务处理,得到业务响应数据;
通过预设密钥对所述业务响应数据进行加密,得到加密响应数据;所述加密响应数据携带后端服务器标识以及所述后端服务器所登录的用户的身份标识;
将所述加密响应数据反馈至前端服务器。
本公开的实施例中,后端服务器利用传输数据进行业务处理,对于需要提供响应的传输数据,后端服务器同样通过预设密钥加密后再反馈至前端服务器,以使得通信双方的安全性均具有保障。
在分离式的前端服务器与后端服务器的数据传输过程中,通过对明文的传输数据加密,有效防止了数据被拦截而导致的泄密问题,同时在加密数据中携带服务器标识与用户标识,避免了数据被篡改,从而保证了前、后端服务器交互数据的一致性,提高了前、后端服务器交互数据的安全性及稳定性。
为了使本公开实施实例的目的、技术方案和优点更加清楚,以下结合2个实施例对本公开实施例的第一方面和第二方面所述的数据传输方法在实际通信过程中的具体应用进行进一步详细说明。
实施例一
图3是本公开实施例一提供的一种数据传输方法的示意图。该实施例中,通过具体的实例,说明了数据按照AES(Advanced Encryption Standard,高级加密标准)加密传输数据的过程。下面对图3中所示的明文、密钥、密文、AES加密函数以及AES解密函数进行说明:
明文P指的是没有经过加密的数据(即传输数据);
密钥K是用于来加密明文P的密码(即预设密钥),前端服务器加密与后端服务器解密的密钥K是相同的,密钥K是前端服务器与后端服务器共同协商产生,不在网络上直接传输,而是通过加密密钥后,再通过网络传输给对方,或者直接面对面协商密钥。密钥K绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。其中,密钥K的协商过程中,前端服务器与后端服务器均确定各自的公共参数,将公共参数传输交互,得到密钥K。
AES加密函数为C=E(K,P),E为AES加密函数,P为明文,K为密钥,C为密文,即把明文P和密钥K作为加密函数的参数输入,则AES加密函数E会输出密文C。
密文C(即加密数据)指的是经加密函数处理后的密文数据。
AES解密函数为P=D(K,C),D为AES解密函数,C为密文,K为密钥,P为明文,即把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P。
如图3所示,该数据传输方法具体为:
前端服务器根据密钥K加密请求数据(即加密明文P),得到密文C,调用后端服务器接口;
后端服务器定义拦截器,拦截所有前端请求(包括密文C),先验证密文C的合法性;
后端服务器根据密钥K解密密文C,密文C解密成功,得到明文P,重定向到请求接口,接口响应成功,加密响应数据;
加密后的响应数据返回前端服务器;
前端服务器根据密钥K解密响应数据。
实施例二
图4是本公开实施例二提供的又一数据传输方法的示意图。该实施例中,通过具体的实例,说明了数据按照通过AES加解密函数进行数据传输的过程。如图4所示,该数据传输方法具体为:
前端服务器创建加解密工具类AesUtils,得到AES加密函数encrypt和AES解密函数decrypt;其中,AES加密函数的输入参数为明文P(即传输数据)和密钥K(即预设密钥),输出参数为密文C(即加密数据),AES解密函数的输入参数为密文C和密钥K,输出参数为明文P;
前端服务器调用后端服务器接口,通过AES加密函数加密得到密文C;
后端服务器定义拦截器AESFilter,拦截所有前端服务器的http请求(包括密文C);
校验前端服务器传输的密文C是否合法,在密文C合法的情况下(即提取得到前端服务器标识与用户的身份标识),调用AES解密函数对密文C进行解密,解密成功后将明文P传输给对应的业务处理模块,以实现数据处理;
在业务处理成功且需要向前端服务器反馈的情况下,调用AES加密函数,将响应结果加密后返回给前端服务器;
前端服务器接收到加密后的响应结果后调用AES解密函数进行解密,并根据响应结果进行渲染。
第三方面,本公开实施例提供一种电子设备,如图5所示,其包括:
一个或多个处理器501;
存储器502,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面任意一项的数据传输方法、或第二方面任意一项的数据传输方法;
一个或多个I/O接口503,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
其中,处理器501为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器502为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)503连接在处理器501与存储器502间,能实现处理器501与存储器502的信息交互,其包括但不限于数据总线(Bus)等。
在一些实施例中,处理器501、存储器502和I/O接口503通过总线504相互连接,进而与计算设备的其它组件连接。
第四方面,本公开实施例提供一种计算机可读存储介质,如图6所示,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任意一项的数据传输方法、或第二方面任意一项的数据传输方法。
本公开采用以上技术方案,避免了前、后端服务器之间传输数据时被拦截而导致的数据泄密或被篡改问题,保证了前、后端服务器交互数据的一致性,提高了前、后端服务器交互数据的安全性及稳定性。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本公开的优选实施例,并非因此局限本公开的权利范围。本领域技术人员不脱离本公开的范围和实质内所作的任何修改、等同替换和改进,均应在本公开的权利范围之内。

Claims (10)

1.一种数据传输方法,包括:
获取传输数据;
通过预设密钥对所述传输数据进行加密,得到加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;
将所述加密数据发送至后端服务器。
2.根据权利要求1所述的数据传输方法,其中,所述预设密钥与第二公共参数、预设原根、以及预设素数相关。
3.根据权利要求2所述的数据传输方法,其中,在通过预设密钥对所述传输数据进行加密,得到加密数据之前,所述数据传输方法还包括:
生成私有随机数;
根据预设原根、预设素数以及所述私有随机数,确定第一公共参数;
将所述第一公共参数发送至后端服务器;
接收第二公共参数;
根据所述第二公共参数、预设原根以及预设素数,确定预设密钥。
4.根据权利要求1所述的数据传输方法,其中,所述通过预设密钥对所述传输数据进行加密,得到加密数据,包括:
对所述预设密钥进行密钥扩展,得到N个第一子密钥;N为正整数;
通过N个所述第一子密钥,对所述传输数据进行加密处理,得到中间加密数据;
将所述前端服务器标识以及所述前端服务器所登录的用户的身份标识作为所述中间加密数据的字符前缀添加至所述中间加密数据中,得到所述加密数据。
5.根据权利要求4所述的数据传输方法,其中,所述通过N个所述第一子密钥,对所述传输数据进行加密处理,得到中间加密数据,包括:
将所述传输数据与第1个第一子密钥进行异或操作,得到第一密文数据;
利用待加密数据与第i个第一子密钥进行一级加密处理,得到相应的第二密文数据,其中,当i=2时,待加密数据为所述第一密文数据,当i>2时,所述待加密数据为利用第i-1个第一子密钥得到的第二密文数据;i依次取自2至(N-1);
利用所述第二密文数据与第N个第一子密钥进行二级加密处理,得到中间加密数据;
其中,利用待加密数据与第i个第一子密钥进行一级加密处理,得到相应的第二密文数据,包括:
将所述待加密数据进行字节代换处理,得到第一数据;
对所述第一数据的每一行均进行移位处理,得到第二数据;
对所述第二数据的每一列均进行矩阵乘处理,得到第三数据;
将所述第三数据与第i个第一子密钥进行异或操作,得到第二密文数据;
其中,利用所述第二密文数据与第N个第一子密钥进行二级加密处理,得到中间加密数据,包括:
将所述第二密文数据进行字节代换处理,得到第四数据;
对所述第四数据的每一行均进行移位处理,得到第五数据;
将所述第五数据与第N个第一子密钥进行异或操作,得到中间加密数据。
6.一种数据传输方法,包括:
接收加密数据;所述加密数据携带前端服务器标识以及所述前端服务器所登录的用户的身份标识;
根据所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,对所述加密数据进行合法性验证;
在验证通过的情况下,对所述加密数据进行解密,得到传输数据。
7.根据权利要求6所述的数据传输方法,其中,所述根据所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,对所述加密数据进行合法性验证,包括:
从所述加密数据中提取前端服务器标识以及所述前端服务器所登录的用户的身份标识;
在所述前端服务器标识和所述前端服务器所登录的用户的身份标识与预设标识库中的标识相匹配的情况下,验证通过,否则验证不通过。
8.根据权利要求6所述的数据传输方法,其中,所述对所述加密数据进行解密,得到所述传输数据,包括:
对预设密钥进行密钥扩展,得到N个第一子密钥;N为正整数;
去除所述加密数据中所携带的所述前端服务器标识以及所述前端服务器所登录的用户的身份标识,得到过程加密数据;
通过N个所述第一子密钥,对所述过程加密数据进行解密处理,得到传输数据。
9.一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至8中任意一项所述的数据传输方法;
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至8中任意一项所述的数据传输方法。
CN202310708891.5A 2023-06-14 2023-06-14 数据传输方法、电子设备及计算机可读存储介质 Pending CN116668147A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310708891.5A CN116668147A (zh) 2023-06-14 2023-06-14 数据传输方法、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310708891.5A CN116668147A (zh) 2023-06-14 2023-06-14 数据传输方法、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116668147A true CN116668147A (zh) 2023-08-29

Family

ID=87709541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310708891.5A Pending CN116668147A (zh) 2023-06-14 2023-06-14 数据传输方法、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116668147A (zh)

Similar Documents

Publication Publication Date Title
US20220141038A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
US8396218B2 (en) Cryptographic module distribution system, apparatus, and program
EP3476078B1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
Jakobsen et al. On the CCA (in) security of MTProto
WO2001039429A1 (en) Integrity check values (icv) based on pseudorandom binary matrices
CN108632296B (zh) 一种网络通信的动态加密与解密方法
CN112702318A (zh) 一种通讯加密方法、解密方法、客户端及服务端
CN112637836A (zh) 一种数据处理方法、装置、电子设备及存储介质
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
WO2020155622A1 (zh) 提高影像数据传输安全的方法、装置、系统及存储介质
CN111600948B (zh) 基于标识密码的云平台应用和数据安全处理方法、系统、存储介质、程序
US20200235915A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN114443718A (zh) 一种数据查询方法及系统
CN115913672A (zh) 电子档案加密传输方法、系统、终端设备及计算机介质
CN115632880A (zh) 一种基于国密算法的可靠数据传输及存储的方法及系统
CN114338648A (zh) 一种基于国密算法的sftp多端文件安全传输的方法及系统
CN113645235A (zh) 分布式数据加解密系统及加解密方法
CN116707778A (zh) 数据混合加密传输方法、装置和电子设备
CN116861461A (zh) 数据处理方法、系统、装置、存储介质及电子设备
CN115277064B (zh) 数据加密、数据解密方法、装置、电子设备和介质
CN116668147A (zh) 数据传输方法、电子设备及计算机可读存储介质
CN111431721A (zh) 一种智能医疗环境下基于ibe的物联网设备加密方法
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN113923029B (zh) 基于ecc混合算法的物联网信息加密方法
CN118018204B (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