WO2021164462A1 - 一种数据加密方法、数据解密方法、计算机设备和介质 - Google Patents

一种数据加密方法、数据解密方法、计算机设备和介质 Download PDF

Info

Publication number
WO2021164462A1
WO2021164462A1 PCT/CN2021/071173 CN2021071173W WO2021164462A1 WO 2021164462 A1 WO2021164462 A1 WO 2021164462A1 CN 2021071173 W CN2021071173 W CN 2021071173W WO 2021164462 A1 WO2021164462 A1 WO 2021164462A1
Authority
WO
WIPO (PCT)
Prior art keywords
decryption
encryption
data
objective function
encrypted
Prior art date
Application number
PCT/CN2021/071173
Other languages
English (en)
French (fr)
Inventor
严月强
Original Assignee
深圳壹账通智能科技有限公司
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 深圳壹账通智能科技有限公司 filed Critical 深圳壹账通智能科技有限公司
Publication of WO2021164462A1 publication Critical patent/WO2021164462A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Definitions

  • the data encryption method includes: obtaining data to be encrypted in response to a data encryption signal; judging whether there is an encryption comment corresponding to the data to be encrypted; if it exists, obtaining the encryption algorithm name and encryption secret in the encryption comment Key; obtain the encrypted annotated package from the database, and parse the package from the package to parse out the encryption code generation template corresponding to the encryption algorithm name, wherein the encryption code generation template includes the encryption algorithm name Corresponding encryption algorithm; filling the encryption key into the encryption code generation template to generate an encryption code; using the encryption code to realize the encryption of the data to be encrypted.
  • Step S131 judging whether the encryption function library contains the function name of the first target function, wherein the input parameters carried by the function corresponding to the function name contained in the encryption function library need to be encrypted;
  • Step S132 when it is determined that the encryption function library contains the function name of the first objective function, obtain the input parameter carried by the first objective function, and use the input parameter as the data to be encrypted.
  • Step S2 It is judged whether there is an encrypted comment corresponding to the data to be encrypted.
  • Step S3 if it exists, obtain the encryption algorithm name and encryption key in the encryption annotation.
  • the salt value is used to encrypt the original encryption key to prevent the original encryption key from leaking.
  • the salt value is 0, it indicates that no salt is added, that is, the original encryption key is not encrypted.
  • the encryption key in the encryption annotation is the original encryption key at this time.
  • the salt value is not 0, it indicates that the salt is added, that is, the original encryption key has been encrypted.
  • the key is the data after the original encryption key is encrypted by the salt value.
  • the salt value is a random number that is used in combination with the original encryption key to generate a new random number as the encryption key and encapsulated in the encryption annotation to prevent the original encryption key from leaking.
  • the first processing module 404 is configured to obtain the package package of the encrypted annotation from the database, and parse the package package to obtain an encryption code generation template corresponding to the name of the encryption algorithm, wherein the encryption code generation template Include the encryption algorithm corresponding to the encryption algorithm name;
  • the third acquisition module is further configured to: acquire the function name of the second objective function to be executed; determine whether the second objective function is used to read data according to the function name of the second objective function; If the second objective function is used to read data, the second objective function is executed, and the data read by the second objective function is used as the data to be decrypted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一种数据加密方法、数据解密方法、计算机设备和介质,所述方法包括:响应于数据加密信号,获取待加密数据(S1);判断是否存在与所述待加密数据对应的加密注解(S2);若存在,则获取所述加密注解中的加密算法名称和加密密钥(S3);从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法(S4);将所述加密密钥填充至所述加密代码生成模板,以生成加密代码(S5);利用所述加密代码实现对所述待加密数据的加密(S6)。

Description

一种数据加密方法、数据解密方法、计算机设备和介质
本申请要求于2020年2月21日提交中国专利局、申请号为202010106955.0,发明名称为“一种数据加密方法、数据解密方法、计算机设备和介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,具体涉及一种数据加密方法、数据解密方法、计算机设备和计算机可读存储介质。
背景技术
目前,国家对数据安全控制越来越严格,对客户的隐私保护政策也越来越严格,通常会要求企业将客户的敏感数据加密后保存至存储引擎中。
但是,发明人在研究本申请的过程中发现,现有技术中至少存在如下缺陷:每开发一个项目或者每执行一次迭代开发,只要涉及到敏感数据,均需要单独构建敏感数据的加解密方案,使得代码库中存在大量的冗余代码,严重占用存储器资源,且处理器在执行任务过程中也会因存储器资源过多而受到影响。
发明内容
本申请的目的在于提供了一种数据加密方法、数据解密方法、计算机设备和计算机可读存储介质,能够解决现有技术中的上述缺陷。
本申请的一个方面提供了一种数据加密方法,所述方法包括:响应于数据加密信号,获取待加密数据;判断是否存在与所述待加密数据对应的加密注解;若存在,则获取所述加密注解中的加密算法名称和加密密钥;从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;利用所述加密代码实现对所述待加密数据的加密。
本申请的另一个方面提供了一种数据解密方法,所述方法包括:响应于数据解密信号,获取待解密数据;判断是否存在与所述待解密数据对应的解密注解;若存在,则获取所述解密注解中的解密算法名称和解密密钥;从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;利用所述解密代码实现对所述待解密数据的解密。
本申请的再一个方面提供了一种数据加密装置,所述装置包括:第一获取模块,用于响应于数据加密信号,获取待加密数据;第一判断模块,用于判断是否存在与所述待加密数据对应的加密注解;第二获取模块,用于在存在所述加密注解时,获取所述加密注解中的加密算法名称和加密密钥;第一处理模块,用于从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;第一填充模块,用于将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;加密模块,用于利用所述加密代码实现对所述待加密数据的加密。
本申请的又一个方面提供了一种数据解密装置,所述装置包括:第三获取模块,用于响应于数据解密信号,获取待解密数据;第二判断模块,用于判断是否存在与所述待解密数据对应的解密注解;第四获取模块,用于在存在所述解密注解时,获取所述解密注解中的解密算法名称和解密密钥;第二处理模块,用于从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;第二填充模块,用于将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;解密模块,用于利用所述解密代码实 现对所述待解密数据的解密。
本申请的又一个方面提供了一种计算机设备,该计算机设备包括:存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述的数据加密方法和/或数据解密方法。其中,该数据加密方法包括:响应于数据加密信号,获取待加密数据;判断是否存在与所述待加密数据对应的加密注解;若存在,则获取所述加密注解中的加密算法名称和加密密钥;从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;利用所述加密代码实现对所述待加密数据的加密。该数据解密方法包括:响应于数据解密信号,获取待解密数据;判断是否存在与所述待解密数据对应的解密注解;若存在,则获取所述解密注解中的解密算法名称和解密密钥;从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;利用所述解密代码实现对所述待解密数据的解密。
本申请的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述的数据加密方法和/或数据解密方法。其中,该数据加密方法包括:响应于数据加密信号,获取待加密数据;判断是否存在与所述待加密数据对应的加密注解;若存在,则获取所述加密注解中的加密算法名称和加密密钥;从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;利用所述加密代码实现对所述待加密数据的加密。该数据解密方法包括:响应于数据解密信号,获取待解密数据;判断是否存在与所述待解密数据对应的解密注解;若存在,则获取所述解密注解中的解密算法名称和解密密钥;从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;利用所述解密代码实现对所述待解密数据的解密。
本申请预先为待加解密数据设置注解,新项目或者新需求不需要再重复开发敏感数据加解密代码,而是在需要对数据进行加解密时,只需从外部数据库中调用注解的封装包并从封装包中解析出加解密代码生成模板,然后将加解密密钥填充至加解密代码生成模板以生成加解密代码,进而利用该加解密代码实现对待加解密数据的加解密。本申请通过设置标准化、通用化和简单易用的注解,不需要关注任何实现细节,代码量非常少,干净简洁、容易维护,解决了现有技术中代码库中存在大量的冗余代码、严重占用硬件资源且处理器在执行任务过程中也会因存储器资源过多而受到影响的缺陷。
附图说明
图1示意性示出了根据本申请实施例的数据加密方法的流程图;
图2示意性示出了根据本申请实施例的数据解密方法的流程图;
图3示意性示出了根据本申请实施例的数据加解密方案的示意图;
图4示意性示出了根据本申请实施例的数据加密装置的框图;
图5示意性示出了根据本申请实施例的数据解密装置的框图;
图6示意性示出了根据本申请实施例的适于实现数据加密方法和/或数据解密方法的计算机设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。
本申请的技术方案可应用于人工智能、智慧城市、区块链和/或大数据技术领域。可选的,本申请涉及的数据如待加密数据和/或待解密数据等可存储于数据库中,或者可以存储于区块链中,本申请不做限定。
本申请的实施例提供了一种数据加密方法,该数据加密方法可以应用于如下业务场景:在用户存储敏感数据之前,为了防止敏感数据的泄露,会将敏感数据加密后存储,此时可以根据预先设置的加密注解自动为敏感数据进行加密,然后将加密后的数据进行存储,由于本申请通过设置标准化、通用化和简单易用的注解实现数据加密,代码量非常少,干净简洁、容易维护,因此解决了现有技术中代码库中存在大量的冗余代码、严重占用硬件资源且处理器在执行任务过程中也会因存储器资源过多而受到影响的缺陷。具体地,图1示意性示出了根据本申请实施例的数据加密方法的流程图。如图1所示,该数据加密方法可以包括步骤S1~步骤S6,其中:
步骤S1,响应于数据加密信号,获取待加密数据。
其中,待加密数据可以为敏感数据。
可选地,步骤S1可以包括步骤S11~步骤S13,其中:
步骤S11,获取待执行的第一目标函数的函数名;
步骤S12,根据所述第一目标函数的函数名判断所述第一目标函数是否用于存储数据;
步骤S13,若判定所述第一目标函数用于存储数据,则获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据。
具体地,在整个代码逻辑中,每执行一个函数,便要根据函数的函数名确定函数的功能,进而根据函数中包含的代码执行实现该功能的步骤。本实施例中的第一目标函数不限定于任何函数。
在根据第一目标函数的函数名确定第一目标函数的功能是用于存储数据时,则表明该第一目标函数携带的入参可能需要被加密后再存储,此时,可以获取该第一目标函数携带的入参,并将入参作为待加密数据。
例如,第一目标函数如下:
Public void setIdNo(String idNo)
{
This.idNo=idNo;
};
第一目标函数的函数名为setIdNo,属于set函数,由于set函数能够用于存储数据,因此可以确定第一目标函数的功能为存储数据,进而可以将idNo作为待加密数据。
可选地,步骤S13可以包括步骤S131和步骤S132,其中:
步骤S131,判断加密函数库中是否包含所述第一目标函数的函数名,其中,所述加密函数库包含的函数名对应的函数所携带的入参需要被加密;
步骤S132,在判定所述加密函数库中包含所述第一目标函数的函数名时,获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据。
需要说明的是,本实施例并不是对所有具有存储功能的第一目标函数的入参都进行加密,而是只有在第一目标函数的函数名被预先设置在加密函数库中时,才会对第一目标函数携带的入参进行加密。
其中,加密数据库中预先设置有若干预定加密函数名,每个预定加密函数名与预定加密函数携带的入参的类型对应,在加密数据库中,预定加密函数名对应的入参的类型为敏感数据的类型,如身份证号、手机号、工资或其他机密数据的类型。例如预定加密函数名 为setage,则预设加密函数setage()可以存储年龄类型的入参。
相应的,若是第一目标函数的函数名具有存储功能,则第一目标函数的函数名也与第一目标函数的入参的类型对应。这样,若是第一目标函数携带的入参为敏感数据,则第一目标函数的函数名必然存在在加密函数库中。此时则可以将第一目标函数的入参确定为待加密数据。
例如,结合上述示例,第一目标函数的函数名为setIdNo,加密函数库包括:setage、setphone和setIdNo。可见,加密数据库中包括第一目标函数的函数名,则可以将idNo确定为待加密数据。
步骤S2,判断是否存在与所述待加密数据对应的加密注解。
在整个业务程序代码中,若需要利用加密注解实现数据加密,则会在程序代码中写入该加密注解,具体可以是写在整个业务程序代码中位于第一目标函数的前面的程序代码中。由于本实施例是通过第一目标函数获得待加密数据,而在执行第一目标函数之前已经执行了位于第一目标函数之前的程序代码,因此,若在执行程序代码的过程中识别到加密注解,则可以将该加密注解作为第一目标函数的注解。需要说明的是,注解都是以特定格式存在的,如@PrivacyProcessor,因此若识别到该特定格式,即认为识别到了注解。
步骤S3,若存在,则获取所述加密注解中的加密算法名称和加密密钥。
本实施例中,加密算法可以为三重数据加密算法(TDEA,Triple Data Encryption Algorithm)、高级加密标准(Advanced Encryption Standard,AES)、RSA(Rivest-Shamir-Adleman)或信息-摘要算法(Message-Digest Algorithm 5,MD5)等,加密算法名称即为加密算法对应的名称。
如,加密注解:@PrivacyProcessor(encryptType=“AES”,key=“abcdefgabcdefge”),则加密算法名称为AES,加密密钥为abcdefgabcdefge。
步骤S4,从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法。
本实施例中加密注解的具体逻辑代码预先封装在封装包中,如封装在map中,在存储数据过程中若需要对数据加密时,只需将加密注解写入整个代码逻辑中,在运行整个代码逻辑的过程中,当确定出要对第一目标函数携带的入参加密时,可以根据加密注解调用加密注解的封装包,由于不同的加密注解可以携带不同的加密算法名称,因此加密注解的封装包可以包括不同的加密代码生成模板,在解析封装包后,需要确定出与加密注解中包括的加密算法名称对应加密代码生成模板。其中,每个加密代码生成模板中存在空缺的参数位置,这些空缺的参数位置可以包括需要添加加密密钥的参数位置和需要添加待加密数据的参数位置等。
步骤S5,将所述加密密钥填充至所述加密代码生成模板,以生成加密代码。
通过将加密密钥填充至加密代码模板中,可以填补对应空缺的参数位置,生成用于实现加密的加密代码。
但是,有时候加密注解中还可能存在盐值,该盐值用于对原始加密秘钥加密以防止原始加密秘钥泄露,在盐值为0时,表明不加盐,即未对原始加密秘钥加密,则此时加密注解中的加密秘钥即为原始加密秘钥,在盐值不为0时,表明加盐,即已对原始加密秘钥加密,则此时加密注解中的加密秘钥为通过盐值对原始加密秘钥加密后的数据。如,盐值为一个随机数,用于和原始加密秘钥组合生成一个新的随机数作为加密秘钥封装在加密注解中,以防止原始加密秘钥泄露。
如,加密注解:@PrivacyProcessor(encryptType=“AES”,key=“abcdefgabcdefge”),表示加密算法名称为AES,加密秘钥为abcdefgabcdefge,且不加盐。
可选地,步骤S5具体可以为:
判断所述加密注解中是否包括盐值;
若包括所述盐值且所述盐值不为0,则利用所述盐值对所述加密秘钥解密,得到原始加密秘钥,并将所述原始加密秘钥填充至所述加密代码生成模板,以生成所述加密代码;
若不包括所述盐值或者包括的所述盐值为0,则直接将所述加密秘钥填充至所述加密代码生成模板,以生成所述加密代码。
本实施例中,在加密注解中存在盐值且盐值不为0时,表明加密注解中携带的加密密钥为利用盐值加密过后的密钥,此时可以利用盐值对加密密钥进行解密得到原始加密密钥,然后再将原始加密密钥填充至加密代码生成模板的相应参数位置处,生成加密代码。在加密注解中不存在盐值或者存在的盐值为0时,表明加密注解中携带的加密密钥为就是原始加密密钥,此时可以直接将该加密密钥填充至加密代码生成模板的相应参数位置处,生成加密代码。
步骤S6,利用所述加密代码实现对所述待加密数据的加密。
本实施例中,还可以将待加密数据填充至加密代码中对应的参数位置处,可以得到完成的加密代码,通过执行该加密代码可以实现对待加密数据的加密,得到已加密数据。
可选地,在步骤S3之后,所述方法还包括:执行所述第一目标函数,以存储利用所述加密代码对所述待加密数据加密后得到的已加密数据。
例如,结合上述示例,可以在执行第一目标函数之前,先利用AES算法和abcdefgabcdefge对idNo加密,得到已加密数据,然后执行第一目标函数,将已加密数据存储至数据库。
本申请的实施例提供了一种数据解密方法,该数据解密方法可以应用于如下业务场景:用户对敏感数据进行加密后,得到已加密数据(又称为待解密数据),并将已加密数据存储至数据库,在用户需要读取已加密数据时,执行数据解密方法的主体如客户端可以根据预先设置的解密注解自动为已加密数据进行解密,然后将解密后的数据反馈给用户,由于本申请通过设置标准化、通用化和简单易用的注解实现数据解密,代码量非常少,干净简洁、容易维护,因此解决了现有技术中代码库中存在大量的冗余代码、严重占用硬件资源且处理器在执行任务过程中也会因存储器资源过多而受到影响的缺陷。具体地,图2示意性示出了根据本申请实施例的数据解密方法的流程图。如图2所示,该数据解密方法可以包括步骤M1~步骤M6,其中:
步骤M1,响应于数据解密信号,获取待解密数据。
其中,待解密数据可以是利用上述加密注解中的若干参数对待加密数据加密后得到的,也可以是利用其它加密方式对待加密数据加密后得到的。
可选地,步骤M1可以包括步骤M11~步骤M13,其中:
步骤M11,获取待执行的第二目标函数的函数名;
步骤M12,根据所述第二目标函数的函数名判断所述第二目标函数是否用于读取数据;
步骤M13,若判定所述第二目标函数用于读取数据,则执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
具体地,在整个代码逻辑中,每执行一个函数,便要根据函数的函数名确定函数的功能,进而根据函数中包含的代码执行实现该功能的步骤。本实施例中的第二目标函数不限定于任何函数。
在根据第二目标函数的函数名确定第二目标函数的功能是用于存储数据时,执行第二目标函数,以从数据库中读取出数据,且此时认为第二目标函数读出的数据很有可能是需要解密的,则此时可以将读出数据作为待解密数据。
例如,第二目标函数如下:
Public String getIdNo()
{
Return this.idNo;
};
第二目标函数的函数名为getIdNo,属于get函数,由于get函数能够用于读取数据,因此可以确定第二目标函数的功能为读取数据,进而可以执行第二目标函数,从数据库中读取出与idNo对应的数据,并将读取出的与idNo对应的数据作为待解密数据。
可选地,步骤M13可以包括步骤M131和步骤M132,其中:
步骤M131,判断解密函数库中是否包含所述第二目标函数的函数名,其中,所述解密函数库包含的函数名对应的函数所读取的数据需要被解密;
步骤M132,在判定所述解密函数库中包含所述第二目标函数的函数名时,执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
需要说明的是,本实施例并不是对所有具有读取功能的第二目标函数读出的数据进行解密,而是只有在第二目标函数的函数名被预先设置在解密函数库中时,本实施例才会对第二目标函数读出的数据进行解密。
其中,解密数据库中预先设置有若干预定解密函数名,每个预定解密函数名与预定解密函数读取数据的类型对应,在解密数据库中,预定解密函数名读取数据的类型为敏感数据的类型,如身份证号、手机号、工资或其他机密数据的类型。例如预定解密函数名为getage,则预设解密函数getage()可以读取年龄类型的数据,且该年龄类型的数据为待解密数据。
相应的,若是第二目标函数的函数名具有读取功能,则第二目标函数的函数名也与第二目标函数读出数据的类型对应。这样,若是第二目标函数要读出的数据为敏感数据,则第二目标函数的函数名必然存在在解密函数库中。此时则可以将第二目标函数读出的数据确定为待解密数据。
例如,结合上述示例,第二目标函数的函数名为getIdNo,解密函数库包括:getage、getphone和getIdNo。可见,解密数据库中包括第二目标函数的函数名,则可以将从数据库中读出的与idNo对应的数据确定为待解密数据。
步骤M2,判断是否存在与所述待解密数据对应的解密注解。
在整个业务程序代码中,若需要利用解密注解实现数据解密,则会在程序代码中写入该解密注解,具体可以是写在整个业务程序代码中位于第二目标函数的前面的程序代码中。由于本实施例是通过第二目标函数获得待加密数据,而在执行第一目标函数之前已经执行了位于第一目标函数之前的程序代码,因此,若在执行程序代码的过程中存在解密注解,则可以将该解密注解作为第一目标函数的注解。
步骤M3,若存在,则获取所述解密注解中的解密算法名称和解密密钥。
本实施例中,解密算法可以包括TDEA算法、AES算法、RSA算法或MD5算法,且解密算法要与加密算法对应使用等,解密算法名称即为解密算法对应的名称。
如,解密注解:@PrivacyProcessor(encryptType=“AES”,key=“abcdefgabcdefge”),则解密算法名称为AES,解密密钥为abcdefgabcdefge。
步骤M4,从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法。
本实施例中解密注解的具体逻辑代码预先封装在封装包中,如封装在map中,在读取数据过程中若需要对数据解密时,只需将解密注解写入整个代码逻辑中,在运行整个代码逻辑的过程中,当确定出要对第二目标函数读出的数据解密时,可以根据解密注解调用解密注解的封装包,由于不同的解密注解可以携带不同的解密算法名称,因此解密注解的封 装包可以包括不同的解密代码生成模板,在解析封装包后,需要确定出与解密注解中包括的解密算法名称对应解密代码生成模板。其中,每个解密代码生成模板中存在空缺的参数位置,这些空缺的参数位置可以包括需要添加解密密钥的参数位置和需要添加待解密数据的参数位置等。
步骤M5,将所述解密密钥填充至所述解密代码生成模板,以生成解密代码。
通过将解密密钥填充至解密代码模板中,可以填补对应空缺的参数位置,生成用于实现解密的解密代码。
但是,有时候解密注解中还可能存在盐值,该盐值用于对原始解密秘钥加密以防止原始解密秘钥泄露,在盐值为0时,表明不加盐,即未对原始解密秘钥加密,则此时解密注解中的解密秘钥即为原始解密秘钥,在盐值不为0时,表明加盐,即已对原始解密秘钥加密,则此时解密注解中的解密秘钥为通过盐值对原始解密秘钥加密后的数据。如,盐值为一个随机数,用于和原始解密秘钥组合生成一个新的随机数作为解密秘钥封装在解密注解中,以防止原始解密秘钥泄露。
如,解密注解:@PrivacyProcessor(encryptType=”AES”,key=”abcdefgabcdefge”),表示解密算法为AES,解密秘钥为abcdefgabcdefge,且不加盐。
可选地,步骤M5具体可以为:
判断所述解密注解中是否包括盐值;
若包括所述盐值且所述盐值不为0,则利用所述盐值对所述解密秘钥解密,得到原始解密秘钥,并将所述原始解密秘钥填充至所述解密代码生成模板,以生成所述解密代码;
若不包括所述盐值或者包括的所述盐值为0,则直接将所述解密秘钥填充至所述解密代码生成模板,以生成所述解密代码。
本实施例中,在解密注解中存在盐值且盐值不为0时,表明解密注解中携带的解密密钥为利用盐值加密过后的密钥,此时可以利用盐值对解密密钥进行解密得到原始解密密钥,然后再将原始解密密钥填充至解密代码生成模板的相应参数位置处,生成解密代码。在解密注解中不存在盐值或者存在的盐值为0时,表明解密注解中携带的解密密钥为就是原始解密密钥,此时可以直接将该解密密钥填充至解密代码生成模板的相应参数位置处,生成解密代码。
步骤M6,利用所述解密代码实现对所述待解密数据的解密。
本实施例中,还可以将待解密数据填充至解密代码中对应的参数位置处,可以得到完成的解密代码,通过执行该解密代码可以实现对待解密数据的解密,得到已解密数据。
例如,结合上述示例,可以在执行第一目标函数之前,先利用aes算法和abcdefgabcdefge对读出的与idNo对应的数据解密,得到原始数据,并将原始数据返给用户。
图3示意性示出了根据本申请实施例的数据加解密方案的示意图。
如图3所示,对于整个加密和解密过程中,可以示意性执行如下:判断待执行目标函数的函数名(即方法名)是否以get开头,若不是,判断是否以set开头,若是则可以将目标函数的原始入参值通过加密注解加密得到新的入参值,然后调用目标函数在数据库中存储新的入参值。若目标函数是以get开头,可以将函数名前面的get去除,然后再将首字母转小写字母,得到类成员变量名,如结合上述示例,对于函数名getIdNo,去掉get得到IdNo,将IdNo首字母转小写字母,得到idNo,然后执行目标函数读取类成员变量名对应的类成员变量(即待解密数据),进而利用解密注解对类成员变量解密,并继续执行目标函数将解密后的数据返给用户。
本申请的实施例还提供了一种数据加密装置,该数据加密装置与上述实施例提供的数据加密方法相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例。具体地,图4示意性示出了根据本申请实施例的数据加密装置的框图。如图 4所示,该数据加密装置400可以包括第一获取模块401、第一判断模块402、第二获取模块403、第一处理模块404、第一填充模块405和加密模块406,其中:
第一获取模块401,用于响应于数据加密信号,获取待加密数据;
第一判断模块402,用于判断是否存在与所述待加密数据对应的加密注解;
第二获取模块403,用于在存在所述加密注解时,获取所述加密注解中的加密算法名称和加密密钥;
第一处理模块404,用于从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;
第一填充模块405,用于将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;
加密模块406,用于利用所述加密代码实现对所述待加密数据的加密。
可选地,第一获取模块还用于:获取待执行的第一目标函数的函数名;根据所述第一目标函数的函数名判断所述第一目标函数是否用于存储数据;若判定所述第一目标函数用于存储数据,则获取所述目标函数携带的入参,并将所述入参作为所述待加密数据;所述系统还可以包括:存储模块,用于在利用所述加密代码实现对所述待加密数据的加密的步骤之后,执行所述第一目标函数,以存储利用所述加密代码对所述待加密数据加密后得到的已加密数据。
可选地,第一获取模块在获取所述目标函数携带的入参,并将所述入参作为所述待加密数据时,还用于:判断加密函数库中是否包含所述第一目标函数的函数名,其中,所述加密函数库包含的函数名对应的函数所携带的入参能够被所述加密注解加密;在判定所述加密函数库中包含所述第一目标函数的函数名时,获取所述目标函数携带的入参,并将所述入参作为所述待加密数据。
可选地,所述第一填充模块还用于:判断所述加密注解中是否包括盐值;若包括所述盐值且所述盐值不为0,则利用所述盐值对所述加密秘钥解密,得到原始加密秘钥,并将所述原始加密秘钥填充至所述加密代码生成模板,以生成所述加密代码;若不包括所述盐值或者包括的所述盐值为0,则直接将所述加密秘钥填充至所述加密代码生成模板,以生成所述加密代码。
本申请的实施例还提供了一种数据解密装置,该数据解密装置与上述实施例提供的数据解密方法相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例。具体地,图5示意性示出了根据本申请实施例的数据解密装置的框图。如图5所示,该数据解密装置500可以包括第三获取模块501、第二判断模块502、第四获取模块503、第二处理模块504、第二填充模块505和解密模块506,其中:
第三获取模块501,用于响应于数据解密信号,获取待解密数据;
第二判断模块502,用于判断是否存在与所述待解密数据对应的解密注解;
第四获取模块503,用于在存在所述解密注解时,获取所述解密注解中的解密算法名称和解密密钥;
第二处理模块504,用于从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;
第二填充模块505,用于将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;
解密模块506,用于利用所述解密代码实现对所述待解密数据的解密。
可选地,第三获取模块还用于:获取待执行的第二目标函数的函数名;根据所述第二 目标函数的函数名判断所述第二目标函数是否用于读取数据;若判定所述第二目标函数用于读取数据,则执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
可选地,第三获取模块在执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据时,还用于:判断解密函数库中是否包含所述第二目标函数的函数名,其中,所述解密函数库包含的函数名对应的函数所读取的数据能够被所述解密注解解密;在判定所述解密函数库中包含所述第二目标函数的函数名时,执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
可选地,第二填充模块还用于:判断所述解密注解中是否包括盐值;若包括所述盐值且所述盐值不为0,则利用所述盐值对所述解密秘钥解密,得到原始解密秘钥,并将所述原始解密秘钥填充至所述解密代码生成模板,以生成所述解密代码;若不包括所述盐值或者包括的所述盐值为0,则直接将所述解密秘钥填充至所述解密代码生成模板,以生成所述解密代码。
图6示意性示出了根据本申请实施例的适于实现数据加密方法和/或数据解密方法的计算机设备的框图。本实施例中,计算机设备600可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备600至少包括但不限于:存储器和处理器。可选的,该计算机设备600还可包括网络接口。例如,该计算机设备600包括存储器601、处理器602、网络接口603,如可通过系统总线相互通信连接的存储器601、处理器602、网络接口603。需要指出的是,图6仅示出了具有组件601-603的计算机设备600,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器603至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器601可以是计算机设备600的内部存储单元,例如该计算机设备600的硬盘或内存。在另一些实施例中,存储器601也可以是计算机设备600的外部存储设备,例如该计算机设备600上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器601还可以既包括计算机设备600的内部存储单元也包括其外部存储设备。在本实施例中,存储器601通常用于存储安装于计算机设备600的操作系统和各类应用软件,例如数据加密方法的程序代码和/或数据解密方法的程序代码等。此外,存储器601还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器602在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器602通常用于控制计算机设备600的总体操作。例如执行与计算机设备600进行数据交互或者通信相关的控制和处理等的数据加密方法的程序代码和/或数据解密方法的程序代码。
在本实施例中,存储于存储器601中的数据加密方法和/或数据解密方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器602)所执行,以完成本申请。
网络接口603可包括无线网络接口或有线网络接口,该网络接口603通常用于在计算机设备600与其他计算机设备之间建立通信链接。例如,网络接口603用于通过网络将计算机设备600与外部终端相连,在计算机设备600与外部终端之间的建立数据传输通道和 通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
本实施例还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现数据加密方法和/或数据解密方法。
可选的,本申请涉及的存储介质如计算机可读存储介质可以是非易失性的,也可以是易失性的。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

  1. 一种数据加密方法,其中,所述方法包括:
    响应于数据加密信号,获取待加密数据;
    判断是否存在与所述待加密数据对应的加密注解;
    若存在,则获取所述加密注解中的加密算法名称和加密密钥;
    从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;
    将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;
    利用所述加密代码实现对所述待加密数据的加密。
  2. 根据权利要求1所述的方法,其中,获取待加密数据的步骤包括:
    获取待执行的第一目标函数的函数名;
    根据所述第一目标函数的函数名判断所述第一目标函数是否用于存储数据;
    若判定所述第一目标函数用于存储数据,则获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据;
    在利用所述加密代码实现对所述待加密数据的加密的步骤之后,所述方法还包括:
    执行所述第一目标函数,以存储利用所述加密代码对所述待加密数据加密后得到的已加密数据。
  3. 根据权利要求2所述的方法,其中,获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据的步骤包括:
    判断加密函数库中是否包含所述第一目标函数的函数名,其中,所述加密函数库包含的函数名对应的函数所携带的入参需要被加密;
    在判定所述加密函数库中包含所述第一目标函数的函数名时,获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据。
  4. 根据权利要求1至3任一项所述的方法,其中,将所述加密密钥填充至所述加密代码生成模板,以生成加密代码的步骤包括:
    判断所述加密注解中是否包括盐值;
    若包括所述盐值且所述盐值不为0,则利用所述盐值对所述加密秘钥解密,得到原始加密秘钥,并将所述原始加密秘钥填充至所述加密代码生成模板,以生成所述加密代码;
    若不包括所述盐值或者包括的所述盐值为0,则直接将所述加密秘钥填充至所述加密代码生成模板,以生成所述加密代码。
  5. 一种数据解密方法,其中,所述方法包括:
    响应于数据解密信号,获取待解密数据;
    判断是否存在与所述待解密数据对应的解密注解;
    若存在,则获取所述解密注解中的解密算法名称和解密密钥;
    从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;
    将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;
    利用所述解密代码实现对所述待解密数据的解密。
  6. 根据权利要求5所述的方法,其中,获取待解密数据的步骤包括:
    获取待执行的第二目标函数的函数名;
    根据所述第二目标函数的函数名判断所述第二目标函数是否用于读取数据;
    若判定所述第二目标函数用于读取数据,则执行所述第二目标函数,并将所述第二目 标函数读取出的数据作为所述待解密数据。
  7. 根据权利要求6所述的方法,其中,执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据的步骤包括:
    判断解密函数库中是否包含所述第二目标函数的函数名,其中,所述解密函数库包含的函数名对应的函数所读取的数据需要被解密;
    在判定所述解密函数库中包含所述第二目标函数的函数名时,执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
  8. 根据权利要求5至7任一项所述的方法,其中,将所述解密密钥填充至所述解密代码生成模板,以生成解密代码的步骤包括:
    判断所述解密注解中是否包括盐值;
    若包括所述盐值且所述盐值不为0,则利用所述盐值对所述解密秘钥解密,得到原始解密秘钥,并将所述原始解密秘钥填充至所述解密代码生成模板,以生成所述解密代码;
    若不包括所述盐值或者包括的所述盐值为0,则直接将所述解密秘钥填充至所述解密代码生成模板,以生成所述解密代码。
  9. 一种计算机设备,其中,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现以下步骤:
    响应于数据加密信号,获取待加密数据;
    判断是否存在与所述待加密数据对应的加密注解;
    若存在,则获取所述加密注解中的加密算法名称和加密密钥;
    从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;
    将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;
    利用所述加密代码实现对所述待加密数据的加密。
  10. 根据权利要求9所述的计算机设备,其中,所述处理器执行所述获取待加密数据的步骤,包括:
    获取待执行的第一目标函数的函数名;
    根据所述第一目标函数的函数名判断所述第一目标函数是否用于存储数据;
    若判定所述第一目标函数用于存储数据,则获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据;
    在利用所述加密代码实现对所述待加密数据的加密的步骤之后,所述处理器还用于执行:
    执行所述第一目标函数,以存储利用所述加密代码对所述待加密数据加密后得到的已加密数据。
  11. 根据权利要求9或10所述的计算机设备,其中,所述处理器执行所述将所述加密密钥填充至所述加密代码生成模板,以生成加密代码的步骤,包括:
    判断所述加密注解中是否包括盐值;
    若包括所述盐值且所述盐值不为0,则利用所述盐值对所述加密秘钥解密,得到原始加密秘钥,并将所述原始加密秘钥填充至所述加密代码生成模板,以生成所述加密代码;
    若不包括所述盐值或者包括的所述盐值为0,则直接将所述加密秘钥填充至所述加密代码生成模板,以生成所述加密代码。
  12. 一种计算机设备,其中,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现以下步骤:
    响应于数据解密信号,获取待解密数据;
    判断是否存在与所述待解密数据对应的解密注解;
    若存在,则获取所述解密注解中的解密算法名称和解密密钥;
    从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;
    将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;
    利用所述解密代码实现对所述待解密数据的解密。
  13. 根据权利要求12所述的计算机设备,其中,所述处理器执行所述获取待解密数据的步骤,包括:
    获取待执行的第二目标函数的函数名;
    根据所述第二目标函数的函数名判断所述第二目标函数是否用于读取数据;
    若判定所述第二目标函数用于读取数据,则执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
  14. 根据权利要求12或13所述的计算机设备,其中,所述处理器执行所述将所述解密密钥填充至所述解密代码生成模板,以生成解密代码的步骤,包括:
    判断所述解密注解中是否包括盐值;
    若包括所述盐值且所述盐值不为0,则利用所述盐值对所述解密秘钥解密,得到原始解密秘钥,并将所述原始解密秘钥填充至所述解密代码生成模板,以生成所述解密代码;
    若不包括所述盐值或者包括的所述盐值为0,则直接将所述解密秘钥填充至所述解密代码生成模板,以生成所述解密代码。
  15. 一种计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
    响应于数据加密信号,获取待加密数据;
    判断是否存在与所述待加密数据对应的加密注解;
    若存在,则获取所述加密注解中的加密算法名称和加密密钥;
    从数据库中获取所述加密注解的封装包,并从所述封装包中解析出与所述加密算法名称对应的加密代码生成模板,其中,所述加密代码生成模板包括所述加密算法名称对应的加密算法;
    将所述加密密钥填充至所述加密代码生成模板,以生成加密代码;
    利用所述加密代码实现对所述待加密数据的加密。
  16. 根据权利要求15所述的计算机可读存储介质,其中,执行所述获取待加密数据的步骤,包括:
    获取待执行的第一目标函数的函数名;
    根据所述第一目标函数的函数名判断所述第一目标函数是否用于存储数据;
    若判定所述第一目标函数用于存储数据,则获取所述第一目标函数携带的入参,并将所述入参作为所述待加密数据;
    在利用所述加密代码实现对所述待加密数据的加密的步骤之后,所述计算机程序被处理器执行时还用于实现:
    执行所述第一目标函数,以存储利用所述加密代码对所述待加密数据加密后得到的已加密数据。
  17. 根据权利要求15或16所述的计算机可读存储介质,其中,执行所述将所述加密密钥填充至所述加密代码生成模板,以生成加密代码的步骤,包括:
    判断所述加密注解中是否包括盐值;
    若包括所述盐值且所述盐值不为0,则利用所述盐值对所述加密秘钥解密,得到原始 加密秘钥,并将所述原始加密秘钥填充至所述加密代码生成模板,以生成所述加密代码;
    若不包括所述盐值或者包括的所述盐值为0,则直接将所述加密秘钥填充至所述加密代码生成模板,以生成所述加密代码。
  18. 一种计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
    响应于数据解密信号,获取待解密数据;
    判断是否存在与所述待解密数据对应的解密注解;
    若存在,则获取所述解密注解中的解密算法名称和解密密钥;
    从数据库中获取所述解密注解的封装包,并从所述封装包中解析出与所述解密算法名称对应的解密代码生成模板,其中,所述解密代码生成模板包括所述解密算法名称对应的解密算法;
    将所述解密密钥填充至所述解密代码生成模板,以生成解密代码;
    利用所述解密代码实现对所述待解密数据的解密。
  19. 根据权利要求18所述的计算机可读存储介质,其中,执行所述获取待解密数据的步骤,包括:
    获取待执行的第二目标函数的函数名;
    根据所述第二目标函数的函数名判断所述第二目标函数是否用于读取数据;
    若判定所述第二目标函数用于读取数据,则执行所述第二目标函数,并将所述第二目标函数读取出的数据作为所述待解密数据。
  20. 根据权利要求18或19所述的计算机可读存储介质,其中,执行所述将所述解密密钥填充至所述解密代码生成模板,以生成解密代码的步骤,包括:
    判断所述解密注解中是否包括盐值;
    若包括所述盐值且所述盐值不为0,则利用所述盐值对所述解密秘钥解密,得到原始解密秘钥,并将所述原始解密秘钥填充至所述解密代码生成模板,以生成所述解密代码;
    若不包括所述盐值或者包括的所述盐值为0,则直接将所述解密秘钥填充至所述解密代码生成模板,以生成所述解密代码。
PCT/CN2021/071173 2020-02-21 2021-01-12 一种数据加密方法、数据解密方法、计算机设备和介质 WO2021164462A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010106955.0 2020-02-21
CN202010106955.0A CN111339558A (zh) 2020-02-21 2020-02-21 一种数据加密方法、数据解密方法、计算机设备和介质

Publications (1)

Publication Number Publication Date
WO2021164462A1 true WO2021164462A1 (zh) 2021-08-26

Family

ID=71183957

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/071173 WO2021164462A1 (zh) 2020-02-21 2021-01-12 一种数据加密方法、数据解密方法、计算机设备和介质

Country Status (2)

Country Link
CN (1) CN111339558A (zh)
WO (1) WO2021164462A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722733A (zh) * 2021-08-27 2021-11-30 北京航天云路有限公司 一种基于Java注解实现的数据访问权限控制方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339558A (zh) * 2020-02-21 2020-06-26 深圳壹账通智能科技有限公司 一种数据加密方法、数据解密方法、计算机设备和介质
CN113709188B (zh) * 2021-10-27 2022-03-11 北京蓝莓时节科技有限公司 会话控制信息处理方法、装置、系统和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282212A (zh) * 2008-05-20 2008-10-08 北京方正国际软件系统有限公司 一种基于模板的加密解密系统与方法
US20140020111A1 (en) * 2012-07-13 2014-01-16 Futurewei Technologies, Inc. Signaling and Handling Content Encryption and Rights Management in Content Transport and Delivery
CN109361717A (zh) * 2018-12-20 2019-02-19 中科鼎富(北京)科技发展有限公司 文件内容加密方法、装置及电子设备
CN110427779A (zh) * 2019-08-13 2019-11-08 威富通科技有限公司 一种数据库表字段的加、解密方法及数据服务器
CN110708273A (zh) * 2018-07-10 2020-01-17 杭州海康威视数字技术股份有限公司 一种数据加密、解密方法及数据加密解密系统
CN111339558A (zh) * 2020-02-21 2020-06-26 深圳壹账通智能科技有限公司 一种数据加密方法、数据解密方法、计算机设备和介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282212A (zh) * 2008-05-20 2008-10-08 北京方正国际软件系统有限公司 一种基于模板的加密解密系统与方法
US20140020111A1 (en) * 2012-07-13 2014-01-16 Futurewei Technologies, Inc. Signaling and Handling Content Encryption and Rights Management in Content Transport and Delivery
CN110708273A (zh) * 2018-07-10 2020-01-17 杭州海康威视数字技术股份有限公司 一种数据加密、解密方法及数据加密解密系统
CN109361717A (zh) * 2018-12-20 2019-02-19 中科鼎富(北京)科技发展有限公司 文件内容加密方法、装置及电子设备
CN110427779A (zh) * 2019-08-13 2019-11-08 威富通科技有限公司 一种数据库表字段的加、解密方法及数据服务器
CN111339558A (zh) * 2020-02-21 2020-06-26 深圳壹账通智能科技有限公司 一种数据加密方法、数据解密方法、计算机设备和介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722733A (zh) * 2021-08-27 2021-11-30 北京航天云路有限公司 一种基于Java注解实现的数据访问权限控制方法

Also Published As

Publication number Publication date
CN111339558A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
WO2021164462A1 (zh) 一种数据加密方法、数据解密方法、计算机设备和介质
US11755530B2 (en) Method and system for applying data retention policies in a computing platform
US9680763B2 (en) Controlling distribution of resources in a network
WO2020253061A1 (zh) 页面生成方法、装置、计算机设备和存储介质
CN109413043B (zh) 实现数据库动态配置的方法及装置、电子设备、存储介质
CN106843978B (zh) 一种sdk接入方法及系统
CN111767095A (zh) 微服务生成方法、装置、终端设备及存储介质
WO2020206905A1 (zh) 代码段保护方法、装置、计算机设备和存储介质
US20140281499A1 (en) Method and system for enabling communications between unrelated applications
WO2019062015A1 (zh) 源代码保护方法、应用服务器及计算机可读存储介质
CN109902493B (zh) 脚本的下发方法及服务器
CN111400760B (zh) web应用访问数据库的方法、装置、服务器和存储介质
CN111382201A (zh) 异构数据库同步方法、装置、计算机设备及存储介质
CN111881209A (zh) 异构数据库的数据同步方法、装置、电子设备及介质
EP3764224B1 (en) Resource permission processing method and apparatus, and storage medium and chip
US9948632B2 (en) Sharing data between sandboxed applications with certificates
CN114978649B (zh) 基于大数据的信息安全保护方法、装置、设备及介质
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
CN114157662B (zh) 一种云平台参数适配方法、装置、终端设备及储存介质
CN110880965A (zh) 一种外发电子文档加密方法、系统、终端及存储介质
US11934539B2 (en) Method and apparatus for storing and processing application program information
CN117194298B (zh) 一种控制方法、装置、设备及存储介质
CN116506224B (zh) 文件上传方法、装置、计算机设备及存储介质
US20230066159A1 (en) Controlling program execution using an access key
CN117786711A (zh) Sap系统的数据加密方法、装置和电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21757680

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 09.01.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 21757680

Country of ref document: EP

Kind code of ref document: A1