CN110971581A - 加密数据处理方法和装置 - Google Patents
加密数据处理方法和装置 Download PDFInfo
- Publication number
- CN110971581A CN110971581A CN201811162049.1A CN201811162049A CN110971581A CN 110971581 A CN110971581 A CN 110971581A CN 201811162049 A CN201811162049 A CN 201811162049A CN 110971581 A CN110971581 A CN 110971581A
- Authority
- CN
- China
- Prior art keywords
- programming language
- key
- access token
- language format
- array
- 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.)
- Granted
Links
Images
Classifications
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种加密数据处理方法和装置。该方法包括:获取服务器发送的第一编程语言格式的密钥;将第一编程语言格式的密钥转换为等效的整数数组;对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。通过本发明,达到了在不同语言类型间解密密钥的效果。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种加密数据处理方法和装置。
背景技术
在日常的开发过程中,经常会遇到服务端和客户端程序分别是用两种不同的编程语言实现的。这种情况下,服务端和客户端之间较常见的数据传输方式是接口调用。在接口调用数据传输过程中,会对一些敏感信息进行加密。由于不同语言支持的密钥格式存在差异,需要在不同语言之间实现密钥格式转换,当密钥过长时,需要分段加解密。
针对相关技术中服务器和客户端语言类型不同导致的密钥格式不一致无法解密的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种加密数据处理方法和装置,以解决服务器和客户端语言类型不同导致的密钥格式不一致无法解密的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种加密数据处理方法,该方法包括:获取服务器发送的第一编程语言格式的密钥;将第一编程语言格式的密钥转换为等效的整数数组;对所述整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;将符合第二编程语言格式的密钥的各个组成部分组合成所述第二编程语言格式的密钥;通过所述第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
进一步地,将所述第一编程语言格式的密钥转换为等效的整数数组包括:通过所述第二编程语言的字符串转换方法将所述第一编程语言格式的密钥转换为等效的无符号整数数组,对所述整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分包括:通过预设解析组件对所述等效的无符号整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分。
进一步地,通过所述第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌包括:判断所述访问令牌的数组长度是否超过预设长度;如果所述访问令牌的数组长度超过所述预设长度,则对所述访问令牌的数组进行分段,得到多个整数数组段,其中,每个整数数组段的长度小于等于所述预设长度;按顺序对每个整数数组段进行解密,得到对应于每个整数数组段的所述访问令牌的组成部分;将所述访问令牌的每个组成部分保存在内存流中;将保存在内存流中的所述访问令牌的每个组成部分转换成字符串,得到解密后的所述访问令牌。
进一步地,所述预设长度为128字节,每个整数数组段为128字节。
进一步地,所述第一编程语言为JAVA语言,所述第二编程语言为C#语言;或,
所述第一编程语言为JAVA语言,所述第二编程语言为C#语言。
为了实现上述目的,根据本发明的另一方面,还提供了一种加密数据处理装置,该装置包括:获取单元,用于获取服务器发送的第一编程语言格式的密钥;转换单元,用于将第一编程语言格式的密钥转换为等效的整数数组;第一解析单元,用于对所述整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;组合单元,用于将符合第二编程语言格式的密钥的各个组成部分组合成所述第二编程语言格式的密钥;解密单元,用于通过所述第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
进一步地,所述转换单元用于通过所述第二编程语言的字符串转换装置将所述第一编程语言格式的密钥转换为等效的无符号整数数组,所述第一解析单元用于通过预设解析组件对所述等效的无符号整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分。
进一步地,所述解密单元包括:判断模块,用于判断所述访问令牌的数组长度是否超过预设长度;分段模块,用于在所述访问令牌的数组长度超过所述预设长度时,对所述访问令牌的数组进行分段,得到多个整数数组段,其中,每个整数数组段的长度小于等于所述预设长度;第二解析模块,用于按顺序对每个整数数组段进行解密,得到对应于每个整数数组段的所述访问令牌的组成部分;保存模块,用于将所述访问令牌的每个组成部分保存在内存流中;转换模块,用于将保存在内存流中的所述访问令牌的每个组成部分转换成字符串,得到解密后的所述访问令牌。
为了实现上述目的,根据本发明的另一方面,还提供了一种存储介质,包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行本发明所述的加密数据处理方法。
为了实现上述目的,根据本发明的另一方面,还提供了一种处理器,用于运行程序,其中,所述程序运行时执行本发明所述的加密数据处理方法。
本发明通过获取服务器发送的第一编程语言格式的密钥;将第一编程语言格式的密钥转换为等效的整数数组;对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌,解决了服务器和客户端语言类型不同导致的密钥格式不一致无法解密的问题,进而达到了在不同语言类型间解密密钥的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的加密数据处理方法的流程图;
图2是根据本发明实施例的加密数据处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的几个术语进行说明:
C#:C#是微软公司发布的一种面向对象的、运行于NET Framework之上的高级程序设计语言。
JAVA:Java是一门面向对象编程语言,具有功能强大和简单易用两个特征。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
RSA:RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
AccessToken:AccessToken是微信公众号的全局唯一接口调用凭据,调用公众号的各接口时都需要使用AccessToken。
Base64:是网络上最常见的用于传输8Bit字节码的编码方式之一,就是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。
本发明实施例提供了一种加密数据处理方法。
图1是根据本发明实施例的加密数据处理方法的流程图,如图1所示,该方法包括以下步骤:
步骤S102:获取服务器发送的第一编程语言格式的密钥;
步骤S104:将第一编程语言格式的密钥转换为等效的整数数组;
步骤S106:对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;
步骤S108:将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;
步骤S110:通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
该实施例采用获取服务器发送的第一编程语言格式的密钥;将第一编程语言格式的密钥转换为等效的整数数组;对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌,解决了服务器和客户端语言类型不同导致的密钥格式不一致无法解密的问题,进而达到了在不同语言类型间解密密钥的效果。
本发明实施例的技术方案可以应用在客户端中,在本发明实施例中,服务器使用公钥加密了访问令牌,该访问令牌可以是调用微信公众号接口的凭据,服务器通过公钥加密了访问令牌后,将加密后的访问令牌传输给客户端,客户端使用时需要先解密,而服务器实现给客户端的密钥是服务器用第一编程语言生成的,客户端只能识别第二编程语言格式,因而需要将第一编程语言格式的密钥转换成第二编程语言格式的密钥以进行解密。客户端将第一编程语言格式的密钥转换成等效的整数数组,然后对整数数组进行解析,从中解析出符合第二编程语言格式各个组成部分,将这些组成部分组合成符合第二编程语言格式的密钥,这样可以被客户端识别和使用,即可用于进行访问令牌的机密,得到解密后的访问令牌,进而可以进行调用微信公众号接口等操作。
可选的,将第一编程语言格式的密钥转换为等效的整数数组包括:通过第二编程语言的字符串转换方法将第一编程语言格式的密钥转换为等效的无符号整数数组,对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分包括:通过预设解析组件对等效的无符号整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分。
在进行等效的整数数组转换时,可以通过第二编程语言自带的字符串转换方法将第一编程语言格式的密钥转换为等效的无符号整数数组,然后通过预设解析组件对等效的无符号整数数组进行解析,以得到符合第二编程语言格式的密钥的各个组成部分。预设解析组件可以是BouncyCastle组件,具体根据编程语言的不同,也可以选择其他类型的组件。
可选的,通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌包括:判断访问令牌的数组长度是否超过预设长度;如果访问令牌的数组长度超过预设长度,则对访问令牌的数组进行分段,得到多个整数数组段,其中,每个整数数组段的长度小于等于预设长度;按顺序对每个整数数组段进行解密,得到对应于每个整数数组段的访问令牌的组成部分;将访问令牌的每个组成部分保存在内存流中;将保存在内存流中的访问令牌的每个组成部分转换成字符串,得到解密后的访问令牌。
在对访问令牌进行解密时,可以进行分段解密,可以预先设定每段的长度,例如,预设长度可以是128字节,判断访问令牌的整数数组的长度是否超过128字节,如果超过,则最多以128字节长度为一段进行分段,得到多个整数数组段,然后按照顺序对这多个整数数组进行挨个解密,将解析出的各个组成部分保存到内存流中,将内存流中的数据转换成字符串,即可得到解密后的访问令牌,通过分段解密可以有效解决访问令牌字符数过长无法一次解密完成的问题。
在本发明实施例中,第一编程语言可以是JAVA语言,第二编程语言可以是C#语言;或者,第一编程语言为C#语言,第二编程语言为JAVA语言。具体根据每种编程语言对应的格式、各部分构成内容的不同,进行相应转换、解析即可,本发明实施例对编程语言的种类不做任何具体限定。
本发明实施例的技术方案可以作为一种基于C#实现C#与JAVA间RSA秘钥格式转换的方法,本发明实施例中,服务器端采用JAVA编写,客户端采用C#编写。服务器端需要向客户端传递调用公众号接口时所需要使用的AccessToken,因为 AccessToken是调用微信公众号接口的全局唯一凭据,因此在传输过程中需要对其加密。本发明实施例中对通信数据使用RSA非对称加密,但是JAVA和C#生成的密钥格式不一样。所以本发明实施例的技术方案旨在解决两者密钥格式不一致的问题,以及当字符数过长时,分段加解密的问题。
本发明实施例还提供了一种优选实施方式,下面结合该优选实施方式对本发明实施例的技术方案进行说明。
第一步:服务端用JAVA生成密钥(记为SK),并把JAVA格式的密钥给客户端,用于后续解密。
JAVA格式密钥举例如下:
MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKCjdfy9B0O EKYNvO31v6SiCOd5nDvqi23JTTTHtzncH1LP7iwDHTthEgjfgW/QRbJRt/dQTWQa6gy4kKgw1CkmjM67QHwjoz+WSMmKevCZVLekxd/ObYc+ZTnggw51Ba1KMRpd5r2S8bmXRScQoEN6QMfYklz+bVNW0LBZNqRLVAgMBAAECgYB8TuIwCauEUNK7NimIIUEBqvzTIVdTFxHQf6v+FjOuou2ztdVUbeeSrjlCuikOTymCFzfUlIBRF6YJ38x2E9l39aaTqAxgyALGVmkiyzXEBMSKPlF4nP6Ts/rfd0GNZ9FamHYoMIyS1n5FYR+rmR0kPj8hpvVSAI9U7UKhMiuZ/iECQQDzUeq7lFcIE4uWhRGveVFjNAGuSsW+q9GOwO7tS5YwuAIQ 2M+XgYGRFo8xMC6V/9SfqJtmSU1zk72pMlYufIqHAkEAySqkcKbWuobq5I9KSQISq2q CuGKtj/iUFho4PCD1YxhnQ7gcHA4OpS1dRFjtXJYQPTX9be+mmypsCFIyofE5DwJBAP GZ20wahTh9v9Lbmq3z9n5ce3bGxAcJsHDg3d09eooxi8uSnL5BV5frII+k2f0TI9rMnlE4Y/ FpN5+zXaOXAi0CQQCs3Aqfjo23jJWtPv/LSo+2YnjfblPMAgNmFrO532xc8axSgZMN/H pTL28UewHD7GMZ5hnWbPcSIFrir5c4luq7AMdkS5A6zdZe6VeGvCiiSJXzy3skrKH2OZ 1OJs2AfBQx8hfaM6MfLPi3A0rw9DPOSB4M/BMchtEh3bXuI7bue2tG+A==
第二步:客户端在调用微信公众号接口前,使用HTTP请求JAVA服务端,获取调用接口所需的凭据AccessToken(访问令牌)。
第三步:服务器端使用公钥(记为PK)加密AccessToken,并把加密后的AccessToken(记为EncryptedToken)传输给客户端。
第四步:客户端使用服务端(服务器)事先给定的密钥对加密的AccessToken进行解密。解密过程包括:
1.密钥格式转换:由于服务端事先给定的密钥是Java格式的,所以首先需要将该格式密钥转换为C#格式。转换步骤如下:
1)在C#中使用Convert.FromBase64String方法将Base64编码的密钥字符串转换为等效的8位无符号整数数组,记为skBytes。
2)使用预设解析组件,例如:BouncyCastle对skBytes数组进行解析,解析出Modulus,Exponent,P,Q,DP,DQ,InverseQ,以及D各部分。解析后的C#格式的密钥记为xmlPrivateKey,如下:
2.分段解密,步骤如下:
1)设置每次最大解密密文大小MAX_DECRYPT_BLOCK=128。
2)使用Convert.FromBase64String将EncryptedToken转换为无符号整数字节数组记为encryptedData。记录数组长度为inputLen,设置偏移量offset=0。
3)以(inputLen-offset>0)为条件进行循环,每次从encryptedData中读取最大不超过MAX_DECRYPT_BLOCK长度的字节数组。并通过xmlPrivateKey进行解密,然后写到内存流中。
4)循环步骤3),直至(inputLen–offset>0)的条件不成立,结束分段解密。
5)读取内存流的数据转换成字符串,即得到AccessToken。
本发明实施例的技术方案,由于对通信数据使用RSA进行非对称加密,但是JAVA和C#生成的密钥格式不一致,通过将JAVA和C#生成的密钥格式进行互相转换,解决了当服务器和客户端程序所使用的编程语言不一致所生成的密钥格式不一样带来的密钥无法正常使用的问题,并且可以在传输通信字符数过长时,进行分段加解密。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种加密数据处理装置,该装置可以用于执行本发明实施例的加密数据处理方法。
图2是根据本发明实施例的加密数据处理装置的示意图,如图2所示,该装置包括:
获取单元10,用于获取服务器发送的第一编程语言格式的密钥;
转换单元20,用于将第一编程语言格式的密钥转换为等效的整数数组;
第一解析单元30,用于对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;
组合单元40,用于将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;
解密单元50,用于通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
该实施例采用获取单元10,用于获取服务器发送的第一编程语言格式的密钥;转换单元20,用于将第一编程语言格式的密钥转换为等效的整数数组;第一解析单元30,用于对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;组合单元40,用于将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;解密单元50,用于通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌,从而解决了服务器和客户端语言类型不同导致的密钥格式不一致无法解密的问题,进而达到了在不同语言类型间解密密钥的效果。
可选地,转换单元20用于通过第二编程语言的字符串转换装置将第一编程语言格式的密钥转换为等效的无符号整数数组,第一解析单元30用于通过预设解析组件对等效的无符号整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分。
可选地,解密单元包括:判断模块,用于判断访问令牌的数组长度是否超过预设长度;分段模块,用于在访问令牌的数组长度超过预设长度时,对访问令牌的数组进行分段,得到多个整数数组段,其中,每个整数数组段的长度小于等于预设长度;第二解析模块,用于按顺序对每个整数数组段进行解密,得到对应于每个整数数组段的访问令牌的组成部分;保存模块,用于将访问令牌的每个组成部分保存在内存流中;转换模块,用于将保存在内存流中的访问令牌的每个组成部分转换成字符串,得到解密后的访问令牌。
在本发明实施例中,第一编程语言可以为JAVA语言,所述第二编程语言可以为 C#语言;或者,第一编程语言为C#语言,第二编程语言为JAVA语言。具体根据每种编程语言对应的格式、各部分构成内容的不同,进行相应转换、解析即可,本发明实施例对编程语言的种类不做任何具体限定。
所述加密数据处理装置包括处理器和存储器,上述获取单元、转换单元、第一解析单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来转换客户端密钥的语言类型以用于解密。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述加密数据处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述加密数据处理方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取服务器发送的第一编程语言格式的密钥;将第一编程语言格式的密钥转换为等效的整数数组;对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。本文中的设备可以是服务器、 PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取服务器发送的第一编程语言格式的密钥;将第一编程语言格式的密钥转换为等效的整数数组;对整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;将符合第二编程语言格式的密钥的各个组成部分组合成第二编程语言格式的密钥;通过第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种加密数据处理方法,其特征在于,包括:
获取服务器发送的第一编程语言格式的密钥;
将第一编程语言格式的密钥转换为等效的整数数组;
对所述整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;
将符合第二编程语言格式的密钥的各个组成部分组合成所述第二编程语言格式的密钥;
通过所述第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
2.根据权利要求1所述的方法,其特征在于,
将所述第一编程语言格式的密钥转换为等效的整数数组包括:通过所述第二编程语言的字符串转换方法将所述第一编程语言格式的密钥转换为等效的无符号整数数组,
对所述整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分包括:通过预设解析组件对所述等效的无符号整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分。
3.根据权利要求1所述的方法,其特征在于,通过所述第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌包括:
判断所述访问令牌的数组长度是否超过预设长度;
如果所述访问令牌的数组长度超过所述预设长度,则对所述访问令牌的数组进行分段,得到多个整数数组段,其中,每个整数数组段的长度小于等于所述预设长度;
按顺序对每个整数数组段进行解密,得到对应于每个整数数组段的所述访问令牌的组成部分;
将所述访问令牌的每个组成部分保存在内存流中;
将保存在内存流中的所述访问令牌的每个组成部分转换成字符串,得到解密后的所述访问令牌。
4.根据权利要求3所述的方法,其特征在于,所述预设长度为128字节,每个整数数组段为128字节。
5.根据权利要求1所述的方法,其特征在于,所述第一编程语言为JAVA语言,所述第二编程语言为C#语言;或,
所述第一编程语言为C#语言,所述第二编程语言为JAVA语言。
6.一种加密数据处理装置,其特征在于,包括:
获取单元,用于获取服务器发送的第一编程语言格式的密钥;
转换单元,用于将第一编程语言格式的密钥转换为等效的整数数组;
第一解析单元,用于对所述整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分;
组合单元,用于将符合第二编程语言格式的密钥的各个组成部分组合成所述第二编程语言格式的密钥;
解密单元,用于通过所述第二编程语言格式的密钥对访问令牌进行解密,得到解密后的访问令牌。
7.根据权利要求6所述的装置,其特征在于,
所述转换单元用于通过所述第二编程语言的字符串转换装置将所述第一编程语言格式的密钥转换为等效的无符号整数数组,
所述第一解析单元用于通过预设解析组件对所述等效的无符号整数数组进行解析,得到符合第二编程语言格式的密钥的各个组成部分。
8.根据权利要求6所述的装置,其特征在于,所述解密单元包括:
判断模块,用于判断所述访问令牌的数组长度是否超过预设长度;
分段模块,用于在所述访问令牌的数组长度超过所述预设长度时,对所述访问令牌的数组进行分段,得到多个整数数组段,其中,每个整数数组段的长度小于等于所述预设长度;
第二解析模块,用于按顺序对每个整数数组段进行解密,得到对应于每个整数数组段的所述访问令牌的组成部分;
保存模块,用于将所述访问令牌的每个组成部分保存在内存流中;
转换模块,用于将保存在内存流中的所述访问令牌的每个组成部分转换成字符串,得到解密后的所述访问令牌。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的加密数据处理方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的加密数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811162049.1A CN110971581B (zh) | 2018-09-30 | 2018-09-30 | 加密数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811162049.1A CN110971581B (zh) | 2018-09-30 | 2018-09-30 | 加密数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110971581A true CN110971581A (zh) | 2020-04-07 |
CN110971581B CN110971581B (zh) | 2022-05-27 |
Family
ID=70029274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811162049.1A Active CN110971581B (zh) | 2018-09-30 | 2018-09-30 | 加密数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110971581B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244563A (zh) * | 2021-11-15 | 2022-03-25 | 珠海许继芝电网自动化有限公司 | 基于aes加密的前后端跨语言通讯方法及系统 |
CN114338008A (zh) * | 2021-12-27 | 2022-04-12 | 中国电信股份有限公司 | 加密传输方法、装置、系统以及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219835B1 (en) * | 1998-10-15 | 2001-04-17 | International Business Machines Corporation | Multi-language DCE remote procedure call |
US20040237092A1 (en) * | 2003-05-19 | 2004-11-25 | Sun Microsystems, Inc. | Inter-object communication interface bridge |
US20050229189A1 (en) * | 2001-10-22 | 2005-10-13 | Mcmanus Eamonn | Inter-process communication using different programming languages |
US7627852B1 (en) * | 2006-01-17 | 2009-12-01 | Xilinx, Inc. | Embedding an interpreter within an application written in a different programming language |
US7681184B1 (en) * | 2004-05-24 | 2010-03-16 | Borland Software Corporation | System and methodology for cross language type system compatibility |
CN102597993A (zh) * | 2009-09-25 | 2012-07-18 | 国际商业机器公司 | 利用统一资源标识符管理应用状态信息 |
CN103179133A (zh) * | 2013-04-12 | 2013-06-26 | 北京工业大学 | 基于实体类的客户端与服务器通信的方法 |
CN103605518A (zh) * | 2013-11-19 | 2014-02-26 | 北京国双科技有限公司 | 对象反序列化方法和装置 |
US9092440B1 (en) * | 2011-09-15 | 2015-07-28 | Google Inc. | Generating a translation of operations for a data structure |
CN106648817A (zh) * | 2016-12-09 | 2017-05-10 | 北京酷我科技有限公司 | 一种跨平台的数据对象传输方法 |
CN107066265A (zh) * | 2017-03-15 | 2017-08-18 | 杭州华澜微电子股份有限公司 | 不同编程语言的互连方法及系统 |
CN111475824A (zh) * | 2020-03-23 | 2020-07-31 | 深圳前海百递网络有限公司 | 数据访问方法、装置、设备和存储介质 |
-
2018
- 2018-09-30 CN CN201811162049.1A patent/CN110971581B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219835B1 (en) * | 1998-10-15 | 2001-04-17 | International Business Machines Corporation | Multi-language DCE remote procedure call |
US20050229189A1 (en) * | 2001-10-22 | 2005-10-13 | Mcmanus Eamonn | Inter-process communication using different programming languages |
US20040237092A1 (en) * | 2003-05-19 | 2004-11-25 | Sun Microsystems, Inc. | Inter-object communication interface bridge |
US7681184B1 (en) * | 2004-05-24 | 2010-03-16 | Borland Software Corporation | System and methodology for cross language type system compatibility |
US7627852B1 (en) * | 2006-01-17 | 2009-12-01 | Xilinx, Inc. | Embedding an interpreter within an application written in a different programming language |
CN102597993A (zh) * | 2009-09-25 | 2012-07-18 | 国际商业机器公司 | 利用统一资源标识符管理应用状态信息 |
US9092440B1 (en) * | 2011-09-15 | 2015-07-28 | Google Inc. | Generating a translation of operations for a data structure |
CN103179133A (zh) * | 2013-04-12 | 2013-06-26 | 北京工业大学 | 基于实体类的客户端与服务器通信的方法 |
CN103605518A (zh) * | 2013-11-19 | 2014-02-26 | 北京国双科技有限公司 | 对象反序列化方法和装置 |
CN106648817A (zh) * | 2016-12-09 | 2017-05-10 | 北京酷我科技有限公司 | 一种跨平台的数据对象传输方法 |
CN107066265A (zh) * | 2017-03-15 | 2017-08-18 | 杭州华澜微电子股份有限公司 | 不同编程语言的互连方法及系统 |
CN111475824A (zh) * | 2020-03-23 | 2020-07-31 | 深圳前海百递网络有限公司 | 数据访问方法、装置、设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244563A (zh) * | 2021-11-15 | 2022-03-25 | 珠海许继芝电网自动化有限公司 | 基于aes加密的前后端跨语言通讯方法及系统 |
CN114338008A (zh) * | 2021-12-27 | 2022-04-12 | 中国电信股份有限公司 | 加密传输方法、装置、系统以及存储介质 |
CN114338008B (zh) * | 2021-12-27 | 2024-05-14 | 中国电信股份有限公司 | 加密传输方法、装置、系统以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110971581B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9009460B2 (en) | Node computing data encryption method | |
CN107786331B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN108985081A (zh) | 一种水印加密方法、装置、介质和电子设备 | |
CN110401677B (zh) | 数字版权密钥的获取方法、装置、存储介质及电子设备 | |
US20160050069A1 (en) | Method and system for media path security | |
CN111131282B (zh) | 请求加密方法、装置、电子设备及存储介质 | |
CN110971581B (zh) | 加密数据处理方法和装置 | |
CN116662941B (zh) | 信息加密方法、装置、计算机设备和存储介质 | |
CN108737353B (zh) | 一种基于数据分析系统的数据加密方法及装置 | |
CN108965278B (zh) | 交易请求处理方法及装置 | |
CN116455572B (zh) | 数据加密方法、装置及设备 | |
CN116614653A (zh) | 多媒体文件播放方法、装置、系统、设备及存储介质 | |
CN110968885A (zh) | 模型训练数据存储方法及装置、电子设备、存储介质 | |
CN116405482A (zh) | 一种日志文件的传输方法、系统、终端及存储介质 | |
CN114465720A (zh) | 密钥迁移方法及装置、存储介质和电子设备 | |
US20220345292A1 (en) | Method and device for encryption of video stream, communication equipment, and storage medium | |
CN111131270B (zh) | 数据加密和解密方法、装置、电子设备及存储介质 | |
CN113672954A (zh) | 特征提取方法、装置和电子设备 | |
KR20130109560A (ko) | 모바일 디바이스의 데이터베이스 암호화 방법 | |
CN106570410B (zh) | 一种数据的加密方法、解密方法、装置和系统 | |
CN116318686B (zh) | 一种数据加密传输方法、装置、电子设备及存储介质 | |
Silva et al. | Performance evaluation of cryptography on middleware-based computational offloading | |
CN115563638B (zh) | 数据处理方法、系统、设备及存储介质 | |
CN113656819A (zh) | 一种电子商务系统中的信息保密处理方法和系统 | |
CN115037464A (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 |