CN112311529A - 一种数据加密方法、解密方法以及数据库的数据处理方法 - Google Patents

一种数据加密方法、解密方法以及数据库的数据处理方法 Download PDF

Info

Publication number
CN112311529A
CN112311529A CN202011162052.0A CN202011162052A CN112311529A CN 112311529 A CN112311529 A CN 112311529A CN 202011162052 A CN202011162052 A CN 202011162052A CN 112311529 A CN112311529 A CN 112311529A
Authority
CN
China
Prior art keywords
field
data
decryption
encrypted
encryption
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
CN202011162052.0A
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.)
Yinqing Technology Co ltd
Original Assignee
Yinqing Technology 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 Yinqing Technology Co ltd filed Critical Yinqing Technology Co ltd
Priority to CN202011162052.0A priority Critical patent/CN112311529A/zh
Publication of CN112311529A publication Critical patent/CN112311529A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/602Providing cryptographic facilities or services
    • 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

Landscapes

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

Abstract

本发明提供一种数据加密方法、解密方法以及数据库的数据处理方法,所述方法包括:基于密钥创建第一高级加密标准对象;根据预设编码计算加密对象的字符总长度;根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。本发明实例提供的数据加密方法、解密方法以及数据库的数据处理方法,能够实现对通过Web应用输入的敏感信息的加密,提高了数据的安全性。

Description

一种数据加密方法、解密方法以及数据库的数据处理方法
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据加密方法、解密方法以及数据库的数据处理方法。
背景技术
高级加密标准(Advanced Encryption Standard,简称AES),又称高级加密标准Rijndael加密法,已经在全世界范围内被广泛使用。
Django是一个开放源代码的Web应用框架,由Python写成,在使用Django开发Web应用时,对于用户输入的敏感信息,需要在将敏感信息存入数据库时通过Django使用AES算法进行自动加密,从数据库读取加密数据至前台页面时进行自动解密。
发明内容
为了实现对数据的加密和解密,本发明实施例提供一种数据加密方法、解密方法以及数据库的数据处理方法,能够实现对通过Web应用输入的敏感信息的加密。
第一方面,本发明提出一种数据加密方法,包括:
基于密钥创建第一高级加密标准对象;
根据预设编码计算加密对象的字符总长度;
根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;
根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。
第二方面,本发明提供一种数据解密方法,包括:
基于密钥创建第二高级加密标准对象;
调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;
对所述解密代码进行反向填充,获得反向填充结果;
根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。
第三方面,本发明提供一种数据库的数据处理方法,包括:
获取待入库字段的字段属性;
若判断获知所述待入库字段的字段属性为加密属性,则通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;
将所述待入库字段对应的加密数据存储到数据库;
其中,所述通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据包括:
基于密钥创建第三高级加密标准对象;
根据预设编码计算所述待入库字段对应的数据的字符总长度;
根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;
根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
第四方面,本发明提供一种数据加密装置,包括:
第一创建单元,用于基于密钥创建第一高级加密标准对象;
计算单元,用于根据预设编码计算加密对象的字符总长度;
填充单元,用于根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;
第一加密单元,用于根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。
第五方面,本发明提供一种数据解密装置,包括:
第二创建单元,用于基于密钥创建第二高级加密标准对象;
第一解密单元,用于调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;
反向填充单元,用于对所述解密代码进行反向填充,获得反向填充结果;
解码单元,用于根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。
第六方面,本发明提供一种数据库的数据处理装置,包括:
第一获取单元,用于获取待入库字段的字段属性;
第二加密单元,用于在判断获知所述待入库字段的字段属性为加密属性之后,通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;
存储单元,用于将所述待入库字段对应的加密数据存储到数据库;
其中,所述第二加密单元包括:
第一创建子单元,用于基于密钥创建第三高级加密标准对象;
计算子单元,用于根据预设编码计算所述待入库字段对应的数据的字符总长度;
填充子单元,用于根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;
加密子单元,用于根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
第七方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述数据加密方法、数据解密方法或者数据库的数据处理方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述数据加密方法、数据解密方法或者数据库的数据处理方法的步骤。
本发明实施例提供的数据加密方法、解密方法以及数据库的数据处理方法,基于密钥创建第一高级加密标准对象,根据预设编码计算加密对象的字符总长度,根据加密对象的拆分长度和字符总长度对加密对象进行填充,获得填充结果,根据第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据,能够实现对通过Web应用输入的敏感信息的加密,提高了数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明第一实施例提供的数据加密方法的流程示意图。
图2是本发明第二实施例提供的数据解密方法的流程示意图。
图3是本发明第三实施例提供的数据库的数据处理方法的流程示意图。
图4是本发明第四实施例提供的数据库的数据处理方法的流程示意图。
图5是本发明第五实施例提供的数据库的数据处理方法的流程示意图。
图6是本发明第六实施例提供的数据库的数据处理方法的流程示意图。
图7是本发明第七实施例提供的数据库的数据处理方法的流程示意图。
图8是本发明第八实施例提供的数据加密装置的结构示意图。
图9是本发明第九实施例提供的数据加密装置的结构示意图。
图10是本发明第十实施例提供的数据解密装置的结构示意图。
图11是本发明第十一实施例提供的数据解密装置的结构示意图。
图12是本发明第十二实施例提供的数据库的数据处理装置的结构示意图。
图13是本发明第十三实施例提供的数据库的数据处理装置的结构示意图。
图14是本发明第十四实施例提供的数据库的数据处理装置的结构示意图。
图15是本发明第十五实施例提供的数据库的数据处理装置的结构示意图。
图16是本发明第十六实施例提供的数据库的数据处理装置的结构示意图。
图17是本发明第十七实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的研究背景进行简单说明。AES支持三种长度的密钥:128位,192位,256位。AES有几种典型的填充方式,包括NoPadding、PKCS5Padding和ISO10125Padding。AES加密算法还提供了五种不同的工作模式,分别为:ECB、CBC、CTR、CFB、OFB。
在使用Django开发Web应用时,对于用户输入的敏感信息,需要通过Django实现将其存入数据库时使用AES算法进行自动加密,从数据库读取加密数据至前台页面时进行自动解密。并且根据业务需求,需要使用Mysql自带的AES_DECRYPT解密函数对数据库中的加密数据进行解密。为了解决上述需求,本发明通过Python语言实现和Mysql的AES函数同样效果的加解密算法,并结合Django实现对敏感信息的自动加解密操作。Python的Crypto.Cipher库提供了一些保护机密数据的加密算法,其中包括了AES加密和解密算法。本发明使用该库提供的AES模块以及通过自定义填充策略实现对数据的加密和解密。
图1是本发明第一实施例提供的数据加密方法的流程示意图,如图1所示,本发明实施例提供的数据加密方法,包括:
S101、基于密钥创建第一高级加密标准对象;
具体地,为了对加密对象进行加密,需要创建一个AES对象,服务器可以创建第一AES对象,所述第一AES对象包括密钥,所述密钥用于对加密对象进行加密。其中,所述密钥是预设的。本发明实施例提供的数据加密方法的执行主体包括但不限于服务器。
S102、根据预设编码计算所述加密对象的字符总长度;
具体地,所述服务器在获取加密对象之后,可以通过预设编码计算所述加密对象的字符总长度,获得所述加密对象的字符总长度。其中,所述预设编码可以为UTF-8编码。所述加密对象可以是明文。
S103、根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;
具体地,所述服务器获取所述加密对象的拆分长度,所述拆分长度定义了将加密对象拆分成明文块的长度。所述服务器根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果。其中,所述拆分长度是预设的,例如为128位,根据实际需要进行设置,本发明实施例不做限定。
S104、根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。
具体地,所述服务器在获得所述填充结果之后,可以调用所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据,所述加密数据即所述加密对象经过加密后的结果。其中,所述第一高级加密标准对象的加密函数可以是Python的Crypto.Cipher库提供的。
本发明实施例提供的数据加密方法,基于密钥创建第一高级加密标准对象,根据预设编码计算加密对象的字符总长度,根据加密对象的拆分长度和字符总长度对加密对象进行填充,获得填充结果,根据第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据,能够实现对通过Web应用输入的敏感信息的加密,提高了数据的安全性。本发明实施例提供的数据加密方法具有与Mysql的AES加密函数相同的加密效果。
在上述各实施例的基础上,进一步地,所述根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果包括:
根据公式text_pad=text+(length-count%length)×chr(length-count%length),获得所述填充结果text_pad,其中,text表示所述加密对象,length表示所述拆分长度,count表示所述字符总长度,%表示求余运算,chr()表示根据ASCII码返回一个对应的字符。
具体地,所述服务器可以获得所述加密对象text,所述加密对象的拆分长度length和所述字符总长度,然后根据公式text_pad=text+(length-count%length)×chr(length-count%length)获得所述填充结果text_pad,实现在加密对象text的后面填充若干个字符使所述填充结果能够被拆分为整数个明文块。其中,%表示求余运算,chr()表示根据ASCII码返回一个对应的字符。
在上述各实施例的基础上,进一步地,本发明实施例提供的数据加密方法还包括:
将所述加密数据转换成16进制数据。
具体地,在实际应用中,Mysql的AES加密函数的加密结果一般是以16进制格式存储的,为了后续调用Mysql的AES解密函数进行数据解密的方便,所述服务器可以将述加密数据由2进制数据转换成16进制数据。
图2是本发明第二实施例提供的数据加密方法的流程示意图,如图2所示,本发明实施例提供的数据解密方法包括:
S201、基于密钥创建第二高级加密标准对象;
具体地,为了对加密数据进行解密,需要创建一个AES对象,服务器可以创建第二AES对象,所述第二AES对象包括密钥,所述密钥用于对加密数据进行解密。其中,所述密钥是预设的。本发明实施例提供的数据解密方法的执行主体包括但不限于服务器。
S202、调用所述第二高级加密标准对象的解密函数对加密数据进行解密,获得解密代码;
具体地,所述服务器可以获取加密数据,然后调用所述第二高级加密标准对象的解密函数对所述加密数据进行解密,获得解密代码。其中,所述第二高级加密标准对象的解密函数可以是Python的Crypto.Cipher库提供的。
S203、对所述解密代码进行反向填充,获得反向填充结果;
具体地,所述服务器在获得所述解密代码之后,可以对所述解密代码进行反向填充,获得反向填充结果。
S204、根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。
具体地,所述服务器在获得所述反向填充结果之后,可以根据预设编码对所述反向填充结果进行解码,从而获得所述加密数据对应的明文。其中,所述预设编码可以为UTF-8编码。
本发明实施例提供的数据解密方法,基于密钥创建第二高级加密标准对象,调用第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码,对解密代码进行反向填充,获得反向填充结果,根据预设编码对反向填充结果进行解码,获得加密数据对应的明文,实现了对加密数据的解密。
在上述各实施例的基础上,进一步地,所述对所述解密代码进行反向填充,获得反向填充结果包括:
根据公式Decrypted=decrypt_code[0:-ord(decrypt_code[-1])],获得所述反向填充结果Decrypted,其中,decrypt_code表示解密代码,[]表示字符串截取,ord()表示返回字符的ASCII码,[-1]表示截取最后一个字符。
具体地,所述服务器可以获得解密代码decrypt_code,然后将解密代码带入到公式Decrypted=decrypt_code[0:-ord(decrypt_code[-1])]中,经过运算可以获得所述反向填充结果Decrypted。其中,[]表示字符串截取,ord()表示返回字符的ASCII码,[-1]表示截取最后一个字符。
在上述各实施例的基础上,进一步地,本发明实施例提供的数据解密方法还包括:
将所述加密数据转换成二进制数据。
具体地,所述加密数据在存储的时候,可以存储成16进制等格式,在对所述加密数据进行解密之前,所述服务器将所述加密数据转换成二级制数据,以方便后续处理。
图3是本发明第三实施例提供的数据库的数据处理方法的流程示意图,如图3所示,本发明实施例提供的数据库的数据处理方法包括:
S301、获取待入库字段的字段属性;
具体地,在将外部数据存储到数据库时,服务器可以获取待入库字段的字段属性,所述字段属性是预设的,可以为加密属性或者非加密属性。加密属性表明需要对待入库字段对应的数据进行数据加密,非加密属性表明不需要对待入库字段对应的数据进行加密。其中,本发明实施例提供的数据库的数据处理方法的执行主体包括但不限于服务器。
S302、若判断获知所述待入库字段的字段属性为加密属性,则通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;
具体地,所述服务器在获得所述待入库字段的字段属性之后,可以判断所述待入库字段的字段属性是否为加密属性,如果所述待入库字段的字段属性为加密属性,那么所述服务器会通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据。
S303、将所述待入库字段对应的加密数据存储到数据库;
具体地,所述服务器在获得所述待入库字段对应的加密数据之后,可以将所述待入库字段对应的加密数据存储到数据库中。
图4是本发明第四实施例提供的数据库的数据处理方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,所述通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据包括:
S3021、基于密钥创建第三高级加密标准对象;
具体地,为了对所述待入库字段对应的数据进行加密,需要创建一个AES对象,所述服务器可以创建第三AES对象,所述第三AES对象包括密钥,所述密钥用于对所述待入库字段对应的数据进行加密。其中,所述密钥是预设的。
S3022、根据预设编码计算所述待入库字段对应的数据的字符总长度;
具体地,所述服务器在获取所述待入库字段对应的数据之后,可以通过预设编码计算所述待入库字段对应的数据的字符总长度,获得所述待入库字段对应的数据的字符总长度。其中,所述预设编码可以为UTF-8编码。所述待入库字段对应的数据可以是明文。
S3023、根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;
具体地,所述服务器获取所述待入库字段对应的数据的拆分长度,所述待入库字段对应的数据的拆分长度定义了将所述待入库字段对应的数据拆分成明文块的长度。所述服务器根据所述待入库字段对应的数据的拆分长度和所述待入库字段对应的数据的字符总长度对所述待入库字段对应的数据进行填充,获得所述待入库字段对应的数据的填充结果。其中,所述拆分长度是预设的,例如为128位,根据实际需要进行设置,本发明实施例不做限定。
例如,所述服务器可以根据公式text_pad=text+(length-count%length)×chr(length-count%length)对待入库字段对应的数据进行填充。
S3024、根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
具体地,所述服务器在获得所述待入库字段对应的数据的填充结果之后,可以调用所述第三高级加密标准对象的加密函数对所述待入库字段对应的数据的填充结果进行加密,获得所述待入库字段对应的加密数据,所述待入库字段对应的加密数据即所述待入库字段对应的数据经过加密后的结果。其中,所述第三高级加密标准对象的加密函数可以是Python的Crypto.Cipher库提供的。
本发明实施例提供的数据库的数据处理方法,通过数据加密流程实现对待入库字段对应的数据的加密,能够实现对通过Web应用输入到数据库的敏感信息的加密,提高了数据的安全性。
图5是本发明第五实施例提供的数据库的数据处理方法的流程示意图,如图5所示,在上述各实施例的基础上,进一步地,本发明实施例提供的数据库的数据处理方法还包括:
S501、获取待出库字段的字段属性;
具体地,在从数据库中读取数据时,服务器可以获取待出库字段的字段属性,所述字段属性是预设的,可以为加密属性或者非加密属性。加密属性表明需要对待出库字段对应的数据进行数据解密,非加密属性表明不需要对待出库字段对应的数据进行解密。
S502、若判断获知所述待出库字段的字段属性为所述加密属性,则通过数据解密流程对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密数据;
具体地,所述服务器在获得所述待出库字段的字段属性之后,可以判断所述待出库字段的字段属性是否为加密属性,如果所述待出库字段的字段属性为加密属性,那么所述服务器可以通过数据解密流程对所述待出库字段对应的数据进行解密,获得所述待出库字段对应的解密数据。
图6是本发明第六实施例提供的数据库的数据处理方法的流程示意图,如图6所示,在上述各实施例的基础上,进一步地,所述通过数据解密流程对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密数据包括:
S5021、基于密钥创建第四高级加密标准对象;
具体地,为了对待出库字段对应的加密数据进行解密,需要创建一个AES对象,服务器可以创建第四AES对象,所述第四AES对象包括密钥,所述密钥用于对待出库字段对应的加密数据进行解密。其中,所述密钥是预设的。
S5022、调用所述第四高级加密标准对象的解密算法对转换后的待出库字段对应的加密数据进行解密,获得解密代码;
具体地,所述服务器可以获取待出库字段对应的加密数据,然后调用所述第四高级加密标准对象的解密函数对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密代码。其中,所述第四高级加密标准对象的解密函数可以是Python的Crypto.Cipher库提供的。
S5023、对所述解密代码进行反向填充,获得反向填充结果;
具体地,所述服务器在获得所述待出库字段对应的解密代码之后,可以对所述待出库字段对应的解密代码进行反向填充,获得所述待出库字段对应的反向填充结果。
S5024、根据预设编码对所述反向填充结果进行解码,获得所述待出库字段对应的解密数据。
具体地,所述服务器在获得所述待出库字段对应的反向填充结果之后,可以根据预设编码对所述待出库字段对应的反向填充结果进行解码,从而获得所述待出库字段对应的解密数据,所述解密数据可以输出到Web应用的前端页面显示。其中,所述预设编码可以为UTF-8编码。
本发明实施例提供的数据库的数据处理方法,通过数据解密流程实现对待出库字段对应的数据的解密,能够实现从数据库读取加密数据至Web应用的前台页面时进行自动解密。
可理解的是,为了能够实现数据入库的自动加密和出库的自动解密,需要在Django中自定义加密属性,实现在Django的Model中使用加密属性定义的字段能够做到在数据入库时进行AES加密,从数据库中读取加密数据时自动解密。具体实现过程如下:
(1)创建AesField类,即加密属性类,继承models.CharField。
(2)重写get_prep_value方法,在该方法中增加本发明实施例提供的数据加密方法,实现数据入库时自动加密。
(3)重写from_db_value方法,在该方法中增加本发明实施例提供的数据解密方法,实现数据出库时自动解密。
(4)在Django的Model中将需要加密的字段的字段属性设置为AesField。
图7是本发明第七实施例提供的数据库的数据处理方法的流程示意图,如图7所示,在上述各实施例的基础上,进一步地,本发明实施例提供的数据库的数据处理方法还包括:
S701、获取待出库字段的字段属性;
具体地,在从数据库中读取数据时,服务器可以获取待出库字段的字段属性,所述字段属性是预设的,可以为加密属性或者非加密属性。加密属性表明需要对待出库字段对应的数据进行数据解密,非加密属性表明不需要对待出库字段对应的数据进行解密。
S702、若判断获知所述待出库字段的字段属性为所述加密属性,则调用Mysql的AES解密函数对所述待出库字段对应的加密数据进行解密。
具体地,所述服务器在获得所述待出库字段的字段属性之后,可以判断所述待出库字段的字段属性是否为加密属性,如果所述待出库字段的字段属性为加密属性,那么所述服务器可以调用Mysql的AES解密函数对所述待出库字段对应的加密数据进行解密,从而获得所述待出库字段对应的解密数据。在从数据库输出数据到报表等业务场景下,实现了使用Mysql的AES解密函数对数据库中的加密数据进行解密。适用于需要对Django开发的Web应用加密后的数据使用sql语句进行处理的场景。
例如,可以通过如下sql语句实现数据库中加密数据的解密:
UPDATE表名SET字段名=AES_DECRYPT(UNHEX(字段名),'密钥')。
其中,UPDATE和SET是SQL语句变更记录的语法,AES_DECRYPT为解密函数,UNHEX表示每对十六进制数字转化为一个字符。
本发明实施例提供的数据加密方法、数据解密方法以及数据库的数据处理方法,实现了Django和Mysql通用的加密方式,当用户通过Web应用输入敏感信息加密存入Mysql数据库后,不仅可以在页面上看到解密后的明文,还可以通过Mysql自带的AES解密函数进行数据库层面上的解密。
图8是本发明第八实施例提供的数据加密装置的结构示意图,如图8所示,本发明实施例提供的数据加密装置包括第一创建单元801、计算单元802、填充单元803和第一加密单元804,其中:
第一创建单元801用于基于密钥创建第一高级加密标准对象;计算单元802用于根据预设编码计算加密对象的字符总长度;填充单元803用于根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;第一加密单元804用于根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。
具体地,为了对加密对象进行加密,需要创建一个AES对象,第一创建单元801可以创建第一AES对象,所述第一AES对象包括密钥,所述密钥用于对加密对象进行加密。其中,所述密钥是预设的。
在获取加密对象之后,可计算单元802以通过预设编码计算所述加密对象的字符总长度,获得所述加密对象的字符总长度。其中,所述预设编码可以为UTF-8编码。所述加密对象可以是明文。
填充单元803获取所述加密对象的拆分长度,所述拆分长度定义了将加密对象拆分成明文块的长度。填充单元803根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果。其中,所述拆分长度是预设的,例如为128位,根据实际需要进行设置,本发明实施例不做限定。
在获得所述填充结果之后,第一加密单元804可以调用所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据,所述加密数据即所述加密对象经过加密后的结果。其中,所述第一高级加密标准对象的加密函数可以是Python的Crypto.Cipher库提供的。
本发明实施例提供的数据加密装置,基于密钥创建第一高级加密标准对象,根据预设编码计算加密对象的字符总长度,根据加密对象的拆分长度和字符总长度对加密对象进行填充,获得填充结果,根据第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据,能够实现对通过Web应用输入的敏感信息的加密,提高了数据的安全性。
在上述各实施例的基础上,进一步地,填充单元803具体用于:
根据公式text_pad=text+(length-count%length)×chr(length-count%length)获得所述填充结果text_pad,其中,text表示所述加密对象,length表示所述拆分长度,count表示所述字符总长度,%表示求余运算,chr()表示根据ASCII码返回一个对应的字符。
具体地,填充单元803可以获得所述加密对象text,所述加密对象的拆分长度length和所述字符总长度,然后根据公式text_pad=text+(length-count%length)×chr(length-count%length)获得所述填充结果text_pad,实现在加密对象text的后面填充若干个字符使所述填充结果能够被拆分为整数个明文块。其中,%表示求余运算,chr()表示根据ASCII码返回一个对应的字符。
图9是本发明第九实施例提供的数据加密装置的结构示意图,如图9所示,在上述各实施例的基础上,进一步地,本发明实施例提供的数据加密装置还包括:
第一转换单元805用于将所述加密数据转换成16进制数据。
具体地,在实际应用中,Mysql的AES加密函数的加密结果一般是以16进制格式存储的,为了后续调用Mysql的AES解密函数进行数据解密的方便,第一转换单元805可以将述加密数据由2进制数据转换成16进制数据。
图10是本发明第十实施例提供的数据解密装置的结构示意图,如图10所示,本发明实施例提供的数据解密装置包括第二创建单元1001、第一解密单元1002、反向填充单元1003和解码单元1004,其中:
第二创建单元1001用于基于密钥创建第二高级加密标准对象;第一解密单元1002用于调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;反向填充单元1003用于对所述解密代码进行反向填充,获得反向填充结果;解码单元1004用于根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。
具体地,为了对加密数据进行解密,需要创建一个AES对象,第二创建单元1001可以创建第二AES对象,所述第二AES对象包括密钥,所述密钥用于对加密数据进行解密。其中,所述密钥是预设的。
第一解密单元1002可以获取加密数据,然后调用所述第二高级加密标准对象的解密函数对所述加密数据进行解密,获得解密代码。其中,所述第二高级加密标准对象的解密函数可以是Python的Crypto.Cipher库提供的。
在获得所述解密代码之后,反向填充单元1003可以对所述解密代码进行反向填充,获得反向填充结果。
在获得所述反向填充结果之后,解码单元1004可以根据预设编码对所述反向填充结果进行解码,从而获得所述加密数据对应的明文。其中,所述预设编码可以为UTF-8编码。
本发明实施例提供的数据解密装置,基于密钥创建第二高级加密标准对象,调用第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码,对解密代码进行反向填充,获得反向填充结果,根据预设编码对反向填充结果进行解码,获得加密数据对应的明文,实现了对加密数据的解密。
在上述各实施例的基础上,进一步地,反向填充单元1003具体用于:
根据公式Decrypted=decrypt_code[0:-ord(decrypt_code[-1])],获得所述反向填充结果Decrypted,其中,decrypt_code表示解密代码,[]表示字符串截取,ord()表示返回字符的ASCII码,[-1]表示截取最后一个字符。
具体地,反向填充单元1003可以获得解密代码decrypt_code,然后将解密代码带入到公式Decrypted=decrypt_code[0:-ord(decrypt_code[-1])]中,经过运算可以获得所述反向填充结果Decrypted。其中,[]表示字符串截取,ord()表示返回字符的ASCII码,[-1]表示截取最后一个字符。
图11是本发明第十一实施例提供的数据解密装置的结构示意图,如图11所示,在上述各实施例的基础上,进一步地,本发明实施例提供的数据解密装置还包括:
第二转换单元1005用于将所述加密数据转换成二进制数据。
具体地,所述加密数据在存储的时候,可以存储成16进制等格式,在对所述加密数据进行解密之前,第二转换单元1005将所述加密数据转换成二级制数据,以方便后续处理。
图12是本发明第十二实施例提供的数据库的数据处理装置的结构示意图,如图12所示,本发明实施例提供的数据库的数据处理装置包括第一获取单元1210、第二加密单元1220和存储单元1230,其中:
第一获取单元1210用于获取待入库字段的字段属性;第二加密单元1220用于在判断获知所述待入库字段的字段属性为加密属性之后,通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;存储单元1230用于将所述待入库字段对应的加密数据存储到数据库;
具体地,在将外部数据存储到数据库时,第一获取单元1210可以获取待入库字段的字段属性,所述字段属性是预设的,可以为加密属性或者非加密属性。加密属性表明需要对待入库字段对应的数据进行数据加密,非加密属性表明不需要对待入库字段对应的数据进行加密。
在获得所述待入库字段的字段属性之后,第二加密单元1220可以判断所述待入库字段的字段属性是否为加密属性,如果所述待入库字段的字段属性为加密属性,那么所述服务器会通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据。
在获得所述待入库字段对应的加密数据之后,存储单元1230可以将所述待入库字段对应的加密数据存储到数据库中。
图13是本发明第十三实施例提供的数据库的数据处理装置的结构示意图,如图13所示,在上述各实施例的基础上,进一步地,第二加密单元1220包括第一创建子单元1221、计算子单元1222、填充子单元1223和加密子单元1224,其中:
第一创建子单元1221用于基于密钥创建第三高级加密标准对象;计算子单元1222用于根据预设编码计算所述待入库字段对应的数据的字符总长度;填充子单元1223用于根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;加密子单元1224用于根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
具体地,为了对所述待入库字段对应的数据进行加密,需要创建一个AES对象,第一创建子单元1221可以创建第三AES对象,所述第三AES对象包括密钥,所述密钥用于对所述待入库字段对应的数据进行加密。其中,所述密钥是预设的。
在获取所述待入库字段对应的数据之后,计算子单元1222可以通过预设编码计算所述待入库字段对应的数据的字符总长度,获得所述待入库字段对应的数据的字符总长度。其中,所述预设编码可以为UTF-8编码。所述待入库字段对应的数据可以是明文。
填充子单元1223获取所述待入库字段对应的数据的拆分长度,所述待入库字段对应的数据的拆分长度定义了将所述待入库字段对应的数据拆分成明文块的长度。填充子单元1223根据所述待入库字段对应的数据的拆分长度和所述待入库字段对应的数据的字符总长度对所述待入库字段对应的数据进行填充,获得所述待入库字段对应的数据的填充结果。其中,所述拆分长度是预设的,例如为128位,根据实际需要进行设置,本发明实施例不做限定。
在获得所述待入库字段对应的数据的填充结果之后,加密子单元1224可以调用所述第三高级加密标准对象的加密函数对所述待入库字段对应的数据的填充结果进行加密,获得所述待入库字段对应的加密数据,所述待入库字段对应的加密数据即所述待入库字段对应的数据经过加密后的结果。其中,所述第三高级加密标准对象的加密函数可以是Python的Crypto.Cipher库提供的。
本发明实施例提供的数据库的数据处理装置,通过数据加密流程实现对待入库字段对应的数据的加密,能够实现对通过Web应用输入到数据库的敏感信息的加密,提高了数据的安全性。
图14是本发明第十四实施例提供的数据库的数据处理装置的结构示意图,如图14所示,在上述各实施例的基础上,进一步地,本发明实施例提供的数据库的数据处理装置还包括第二获取单元1240和第二解密单元1250,其中:
第二获取单元1240用于获取待出库字段的字段属性;第二解密单元1250用于在判断获知所述待出库字段的字段属性为所述加密属性之后,则通过数据解密流程对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密数据;
具体地,在从数据库中读取数据时,第二获取单元1240可以获取待出库字段的字段属性,所述字段属性是预设的,可以为加密属性或者非加密属性。加密属性表明需要对待出库字段对应的数据进行数据解密,非加密属性表明不需要对待出库字段对应的数据进行解密。
在获得所述待出库字段的字段属性之后,第二解密单元1250可以判断所述待出库字段的字段属性是否为加密属性,如果所述待出库字段的字段属性为加密属性,那么第二解密单元1250可以通过数据解密流程对所述待出库字段对应的数据进行解密,获得所述待出库字段对应的解密数据。
图15是本发明第十五实施例提供的数据库的数据处理装置的结构示意图,如图15所示,在上述各实施例的基础上,进一步地,第二解密单元1250包括第二创建子单元1251、解密子单元1252、反向填充子单元1253和解码子单元1254,其中:
第二创建子单元1251用于基于密钥创建第四高级加密标准对象;解密子单元1252用于调用所述第四高级加密标准对象的解密算法对转换后的待出库字段对应的加密数据进行解密,获得解密代码;反向填充子单元1253用于对所述解密代码进行反向填充,获得反向填充结果;解码子单元1254用于根据预设编码对所述反向填充结果进行解码,获得所述待出库字段对应的解密数据。
具体地,为了对待出库字段对应的加密数据进行解密,需要创建一个AES对象,第二创建子单元1251可以创建第四AES对象,所述第四AES对象包括密钥,所述密钥用于对待出库字段对应的加密数据进行解密。其中,所述密钥是预设的。
解密子单元1252可以获取待出库字段对应的加密数据,然后调用所述第四高级加密标准对象的解密函数对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密代码。其中,所述第四高级加密标准对象的解密函数可以是Python的Crypto.Cipher库提供的。
在获得所述待出库字段对应的解密代码之后,反向填充子单元1253可以对所述待出库字段对应的解密代码进行反向填充,获得所述待出库字段对应的反向填充结果。
在获得所述待出库字段对应的反向填充结果之后,解码子单元1254可以根据预设编码对所述待出库字段对应的反向填充结果进行解码,从而获得所述待出库字段对应的解密数据,所述解密数据可以输出到Web应用的前端页面显示。其中,所述预设编码可以为UTF-8编码。
图16是本发明第十六实施例提供的数据库的数据处理装置的结构示意图,如图16所示,在上述各实施例的基础上,进一步地,本发明实施例提供的数据库的数据处理装置还包括第三获取单元1260和调用单元1270,其中:
第三获取单元1260用于获取待出库字段的字段属性;调用单元1270用于在判断获知所述待出库字段的字段属性为所述加密属性之后,调用Mysql的AES解密函数对所述待出库字段对应的加密数据进行解密。
具体地,在从数据库中读取数据时,第三获取单元1260可以获取待出库字段的字段属性,所述字段属性是预设的,可以为加密属性或者非加密属性。加密属性表明需要对待出库字段对应的数据进行数据解密,非加密属性表明不需要对待出库字段对应的数据进行解密。
在获得所述待出库字段的字段属性之后,调用单元1270可以判断所述待出库字段的字段属性是否为加密属性,如果所述待出库字段的字段属性为加密属性,那么所述服务器可以调用Mysql的AES解密函数对所述待出库字段对应的加密数据进行解密,从而获得所述待出库字段对应的解密数据。在从数据库输出数据到报表等业务场景下,实现了使用Mysql的AES解密函数对数据库中的加密数据进行解密。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图17是本发明一实施例提供的电子设备的实体结构示意图,如图17所示,该电子设备可以包括:处理器(processor)1701、通信接口(Communications Interface)1702、存储器(memory)1703和通信总线1704,其中,处理器1701,通信接口1702,存储器1703通过通信总线1704完成相互间的通信。处理器1701可以调用存储器1703中的逻辑指令,以执行如下方法:基于密钥创建第一高级加密标准对象;根据预设编码计算加密对象的字符总长度;根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。或者
基于密钥创建第二高级加密标准对象;调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;对所述解密代码进行反向填充,获得反向填充结果;根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。或者
获取待入库字段的字段属性;若判断获知所述待入库字段的字段属性为加密属性,则通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;将所述待入库字段对应的加密数据存储到数据库;其中,所述通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据包括:基于密钥创建第三高级加密标准对象;根据预设编码计算所述待入库字段对应的数据的字符总长度;根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
此外,上述的存储器1703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:基于密钥创建第一高级加密标准对象;根据预设编码计算加密对象的字符总长度;根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。或者
基于密钥创建第二高级加密标准对象;调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;对所述解密代码进行反向填充,获得反向填充结果;根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。或者
获取待入库字段的字段属性;若判断获知所述待入库字段的字段属性为加密属性,则通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;将所述待入库字段对应的加密数据存储到数据库;其中,所述通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据包括:基于密钥创建第三高级加密标准对象;根据预设编码计算所述待入库字段对应的数据的字符总长度;根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:基于密钥创建第一高级加密标准对象;根据预设编码计算加密对象的字符总长度;根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。或者
基于密钥创建第二高级加密标准对象;调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;对所述解密代码进行反向填充,获得反向填充结果;根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。或者
获取待入库字段的字段属性;若判断获知所述待入库字段的字段属性为加密属性,则通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;将所述待入库字段对应的加密数据存储到数据库;其中,所述通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据包括:基于密钥创建第三高级加密标准对象;根据预设编码计算所述待入库字段对应的数据的字符总长度;根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种数据加密方法,其特征在于,包括:
基于密钥创建第一高级加密标准对象;
根据预设编码计算加密对象的字符总长度;
根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;
根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果包括:
根据公式text_pad=text+(length-count%length)×chr(length-count%length),获得所述填充结果text_pad,其中,text表示所述加密对象,length表示所述拆分长度,count表示所述字符总长度,%表示求余运算,chr()表示根据ASCII码返回一个对应的字符。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
将所述加密数据转换成16进制数据。
4.一种数据解密方法,其特征在于,包括:
基于密钥创建第二高级加密标准对象;
调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;
对所述解密代码进行反向填充,获得反向填充结果;
根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。
5.根据权利要求4所述的方法,其特征在于,所述对所述解密代码进行反向填充,获得反向填充结果包括:
根据公式Decrypted=decrypt_code[0:-ord(decrypt_code[-1])],获得所述反向填充结果Decrypted,其中,decrypt_code表示解密代码,[]表示字符串截取,ord()表示返回字符的ASCII码,[-1]表示截取最后一个字符。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
将所述加密数据转换成二进制数据。
7.一种数据库的数据处理方法,其特征在于,包括:
获取待入库字段的字段属性;
若判断获知所述待入库字段的字段属性为加密属性,则通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;
将所述待入库字段对应的加密数据存储到数据库;
其中,所述通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据包括:
基于密钥创建第三高级加密标准对象;
根据预设编码计算所述待入库字段对应的数据的字符总长度;
根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;
根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
8.根据权利要求7所述的方法,其特征在于,还包括:
获取待出库字段的字段属性;
若判断获知所述待出库字段的字段属性为所述加密属性,则通过数据解密流程对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密数据;
其中,所述通过数据解密流程对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密数据包括:
基于密钥创建第四高级加密标准对象;
调用所述第四高级加密标准对象的解密算法对转换后的待出库字段对应的加密数据进行解密,获得解密代码;
对所述解密代码进行反向填充,获得反向填充结果;
根据预设编码对所述反向填充结果进行解码,获得所述待出库字段对应的解密数据。
9.根据权利要求7所述的方法,其特征在于,还包括:
获取待出库字段的字段属性;
若判断获知所述待出库字段的字段属性为所述加密属性,则调用Mysql的AES解密函数对所述待出库字段对应的加密数据进行解密。
10.一种数据加密装置,其特征在于,包括:
第一创建单元,用于基于密钥创建第一高级加密标准对象;
计算单元,用于根据预设编码计算加密对象的字符总长度;
填充单元,用于根据所述加密对象的拆分长度和所述字符总长度对所述加密对象进行填充,获得填充结果;其中,所述拆分长度是预设的;
第一加密单元,用于根据所述第一高级加密标准对象的加密函数对所述填充结果进行加密,获得加密数据。
11.根据权利要求10所述的装置,其特征在于,所述填充单元具体用于:
根据公式text_pad=text+(length-count%length)×chr(length-count%length)获得所述填充结果text_pad,其中,text表示所述加密对象,length表示所述拆分长度,count表示所述字符总长度,%表示求余运算,chr()表示根据ASCII码返回一个对应的字符。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
第一转换单元,用于将所述加密数据转换成16进制数据。
13.一种数据解密装置,其特征在于,包括:
第二创建单元,用于基于密钥创建第二高级加密标准对象;
第一解密单元,用于调用所述第二高级加密标准对象的解密算法对加密数据进行解密,获得解密代码;
反向填充单元,用于对所述解密代码进行反向填充,获得反向填充结果;
解码单元,用于根据预设编码对所述反向填充结果进行解码,获得所述加密数据对应的明文。
14.根据权利要求13所述的装置,其特征在于,所述反向填充单元具体用于:
根据公式Decrypted=decrypt_code[0:-ord(decrypt_code[-1])],获得所述反向填充结果Decrypted,其中,decrypt_code表示解密代码,[]表示字符串截取,ord()表示返回字符的ASCII码,[-1]表示截取最后一个字符。
15.根据权利要求13或14所述的装置,其特征在于,还包括:
第二转换单元,用于将所述加密数据转换成二进制数据。
16.一种数据库的数据处理装置,其特征在于,包括:
第一获取单元,用于获取待入库字段的字段属性;
第二加密单元,用于在判断获知所述待入库字段的字段属性为加密属性之后,通过数据加密流程对所述待入库字段对应的数据进行加密,获得所述待入库字段对应的加密数据;
存储单元,用于将所述待入库字段对应的加密数据存储到数据库;
其中,所述第二加密单元包括:
第一创建子单元,用于基于密钥创建第三高级加密标准对象;
计算子单元,用于根据预设编码计算所述待入库字段对应的数据的字符总长度;
填充子单元,用于根据所述待入库字段对应的数据的拆分长度和所述字符总长度对所述待入库字段对应的数据进行填充,获得填充结果;
加密子单元,用于根据所述第三高级加密标准对象的加密函数对所述填充结果进行加密,获得所述加密数据。
17.根据权利要求16所述的装置,其特征在于,还包括:
第二获取单元,用于获取待出库字段的字段属性;
第二解密单元,用于在判断获知所述待出库字段的字段属性为所述加密属性之后,则通过数据解密流程对所述待出库字段对应的加密数据进行解密,获得所述待出库字段对应的解密数据;
其中,所述第二解密单元包括:
第二创建子单元,用于基于密钥创建第四高级加密标准对象;
解密子单元,用于调用所述第四高级加密标准对象的解密算法对转换后的待出库字段对应的加密数据进行解密,获得解密代码;
反向填充子单元,用于对所述解密代码进行反向填充,获得反向填充结果;
解码子单元,用于根据预设编码对所述反向填充结果进行解码,获得所述待出库字段对应的解密数据。
18.根据权利要求16所述的装置,其特征在于,还包括:
第三获取单元,用于获取待出库字段的字段属性;
调用单元,用于在判断获知所述待出库字段的字段属性为所述加密属性之后,调用Mysql的AES解密函数对所述待出库字段对应的加密数据进行解密。
19.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
CN202011162052.0A 2020-10-27 2020-10-27 一种数据加密方法、解密方法以及数据库的数据处理方法 Pending CN112311529A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011162052.0A CN112311529A (zh) 2020-10-27 2020-10-27 一种数据加密方法、解密方法以及数据库的数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011162052.0A CN112311529A (zh) 2020-10-27 2020-10-27 一种数据加密方法、解密方法以及数据库的数据处理方法

Publications (1)

Publication Number Publication Date
CN112311529A true CN112311529A (zh) 2021-02-02

Family

ID=74330309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011162052.0A Pending CN112311529A (zh) 2020-10-27 2020-10-27 一种数据加密方法、解密方法以及数据库的数据处理方法

Country Status (1)

Country Link
CN (1) CN112311529A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116933297A (zh) * 2023-09-18 2023-10-24 深圳迅策科技有限公司 一种金融敏感风险数据安全保护方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583217A (zh) * 2018-11-21 2019-04-05 深圳市易讯天空网络技术有限公司 一种互联网电商平台用户隐私数据加密及解密方法
CN110650191A (zh) * 2019-09-20 2020-01-03 浪潮电子信息产业股份有限公司 一种分布式存储系统的数据读写方法
EP3614292A1 (en) * 2018-08-23 2020-02-26 Koninklijke KPN N.V. File transfer system comprising an upload, storage and download device
CN111310221A (zh) * 2020-03-26 2020-06-19 北京百度网讯科技有限公司 持久层数据的加解密方法、装置、设备及存储介质
CN111475543A (zh) * 2020-03-27 2020-07-31 深圳壹账通智能科技有限公司 一种模糊搜索方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3614292A1 (en) * 2018-08-23 2020-02-26 Koninklijke KPN N.V. File transfer system comprising an upload, storage and download device
CN109583217A (zh) * 2018-11-21 2019-04-05 深圳市易讯天空网络技术有限公司 一种互联网电商平台用户隐私数据加密及解密方法
CN110650191A (zh) * 2019-09-20 2020-01-03 浪潮电子信息产业股份有限公司 一种分布式存储系统的数据读写方法
CN111310221A (zh) * 2020-03-26 2020-06-19 北京百度网讯科技有限公司 持久层数据的加解密方法、装置、设备及存储介质
CN111475543A (zh) * 2020-03-27 2020-07-31 深圳壹账通智能科技有限公司 一种模糊搜索方法、装置、计算机设备及存储介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ANLIM: "Django 自定义AES加密Field", pages 1 - 5, Retrieved from the Internet <URL:https://www.jianshu.com/p/3edf34a652ef> *
WEIXIN_33705053: "Python3 django2.0 字段加密解密 AES", pages 2 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_33705053/article/details/92579831> *
步行者811: "python Django中的加密解密", pages 1 - 3, Retrieved from the Internet <URL:https://www.cnblogs.com/linqiuhua/p/8398180.html> *
赵永锋;范敏;: "文档加密器的设计与实现", 新疆职业大学学报, no. 04 *
蹲街弑〆低调: "python3 AES 加解密", pages 1 - 4, Retrieved from the Internet <URL:https://developer.aliyun.com/article/272484> *
韦德泉,许桂秋: "Spark大数据技术与应用", 31 January 2020, 浙江科学技术出版社, pages: 126 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116933297A (zh) * 2023-09-18 2023-10-24 深圳迅策科技有限公司 一种金融敏感风险数据安全保护方法
CN116933297B (zh) * 2023-09-18 2023-11-17 深圳迅策科技有限公司 一种金融敏感风险数据安全保护方法

Similar Documents

Publication Publication Date Title
Aslett et al. A review of homomorphic encryption and software tools for encrypted statistical machine learning
CN108667595B (zh) 一种大数据文件的压缩加密方法
CN108280356B (zh) 文件解密方法、装置、处理终端及计算机可读存储介质
US20140143553A1 (en) Method and Apparatus for Encapsulating and Encrypting Files in Computer Device
Alsaidi et al. Compression multi-level crypto stego security of texts utilizing colored email forwarding
CN102484581A (zh) 使用中间数据更改的具有可配置密钥的白盒密码系统
KR20100138986A (ko) 암호 시스템
CN101340279A (zh) 数据加密及解密方法、系统及设备
US11251936B2 (en) System and method for performing homomorphic aggregation over encrypted data
CN110704854B (zh) 针对文本数据保留格式的流式加密方法
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
Matta et al. A comparative survey on data encryption Techniques: Big data perspective
CN112199699A (zh) 字符串的加解密方法、装置、存储介质和处理器
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN112311529A (zh) 一种数据加密方法、解密方法以及数据库的数据处理方法
Jana et al. A novel time-stamp-based audio encryption scheme using sudoku puzzle
CN103605927B (zh) 一种基于嵌入式Linux系统实现加密和解密方法及装置
CN111104693A (zh) 一种Android平台软件数据破解方法、终端设备及存储介质
CN114726511A (zh) 数据处理方法和装置
CN110474967B (zh) 块链实验系统及方法
WO2016103952A1 (ja) 暗号化装置
CN112242970A (zh) 一种数据分割加密安全加固方法及装置
CN106570410B (zh) 一种数据的加密方法、解密方法、装置和系统
CN115563638B (zh) 数据处理方法、系统、设备及存储介质
KR102337865B1 (ko) 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법

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