CN115580477A - 基于aes加密的文件加密方法、解密方法及相关设备 - Google Patents

基于aes加密的文件加密方法、解密方法及相关设备 Download PDF

Info

Publication number
CN115580477A
CN115580477A CN202211305356.7A CN202211305356A CN115580477A CN 115580477 A CN115580477 A CN 115580477A CN 202211305356 A CN202211305356 A CN 202211305356A CN 115580477 A CN115580477 A CN 115580477A
Authority
CN
China
Prior art keywords
file
encryption
value
aes
encrypted
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
CN202211305356.7A
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.)
Shenzhen Big Head Brothers Technology Co Ltd
Original Assignee
Shenzhen Big Head Brothers 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 Shenzhen Big Head Brothers Technology Co Ltd filed Critical Shenzhen Big Head Brothers Technology Co Ltd
Priority to CN202211305356.7A priority Critical patent/CN115580477A/zh
Publication of CN115580477A publication Critical patent/CN115580477A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

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)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种基于AES加密的文件加密方法、解密方法及相关设备,其中方法包括:通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;构建包含文件加密验证信息的文件头;按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。本发明的文件加密方法除了对文件进行加密之外还将与加密相关的文件验证信息与加密后的文件进行一起封装,实现了后续对秘钥正确性以及加密文件完整性的验证,加密流程更完善。

Description

基于AES加密的文件加密方法、解密方法及相关设备
技术领域
本发明涉及发光特效制作技术领域,尤其涉及一种基于AES加密的文件加密方法、解密方法及相关设备。
背景技术
随着社会的发展,信息化不断的推进,“互联网+”的应用也不断的深入。信息化渗透到人们学习、工作、生活等各方面,为人们提供便利服务的同时,也面临着信息安全的巨大挑战。对于敏感数据的保护已经成为人们关注的热点问题,入侵者可以直接窃取服务存储设备,也可以使用网络技术入侵窃取文件数据。很多情况下,由于某种需要,一些敏感数据文件需要在网上供多人共享,这也增加了信息泄露的可能性。个人信息安全是信息安全的重要组成部分,创建一个保护用户个人信息的工具具有重要意义。
信息泄露是敏感数据拥有者所不愿面对的,也是难以接受的。那么如何把信息泄露的可能性降到最低,就成为一个亟需解决的问题。现有技术对文件加密基本都是简单的利用秘钥直接加密,而并不会对文件进行验证信息封装,这样在给定一个加密文件时,用户无法判断文件是不是加密文件,解密时也无法判断秘钥是否正确,更不能判断解密后的文件是否完整。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的旨在提供一种基于AES加密的文件加密方法、系统、设备及存储介质,以解决现有技术所述的上述问题。
本发明第一方面提供了一种基于AES加密的文件加密方法,包括以下步骤:
通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;
基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;
利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;
利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;
构建包含文件加密验证信息的文件头;
按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。
在本发明第一方面一种可选的实施方式中,所述通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥包括:
获取系统当前的UTC时间;
将所述UTC时间转换为以毫秒为单位的整数值;
通过预置的整数字符串转换算法将所述整数值转换成数字字符串;
在所述数字字符串加入适宜数量的随机数以使所述数字字符串可均等拆分得到24个数字元素;
将24个所述数字元素与预设数值相除并取余,获得24个整数;
以24个所述整数作为索引从预设的秘钥来源数组获得24个映射字符,以24个映射字符组成的字符串作为AES加密秘钥。
在本发明第一方面一种可选的实施方式中,所述通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥之前包括:
将26个字母,数字0-9,以及若干的特殊符号作为映射字符按照顺序存放到秘钥来源数组中,并为26个字母,数字0-9,以及若干的特殊符号分别配置对应的映射整数。
在本发明第一方面一种可选的实施方式中,若所述整数作为索引确定的所述映射字符为字母,则通过预置的随机数生成器生成一个随机数,通过所述随机数的奇偶属性,确定所述字母是大写还是小写。
在本发明第一方面一种可选的实施方式中,所述构建包含文件加密验证信息的文件头包括:
以16个字节作为所述文件头的长度;
将16个所述字节中的第4-7字节配置成用于存储文件类型标记位信息;
将16个所述字节中的第8-11字节配置成用于存储文件大小信息。
在本发明第一方面一种可选的实施方式中,所述基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件之前包括:
判断待加密的文件的大小是否为16的整数倍;
若待加密的所述文件的大小不是16的整数倍,则在待加密的所述文件的末尾补入空白以使所述待加密的所述文件的大小等于16的整数倍。
本发明第二方面提供了一种AES加密文件的解密方法,包括以下步骤:
接收加密终端发送的最终加密文件;
解析所述最终加密文件的文件头,基于所述文件头中的文件加密验证信息判断所述最终加密文件是否是AES加密文件;
若所述最终加密文件为AES加密文件,则接收输入的AES解密秘钥;
通过MD5摘要信息算法获得所述AES解密秘钥的第三MD5值;
判断所述第三MD5值与所述最终加密文件的文件头之后的第一MD5值是否相同;
若所述第三MD5值和所述第一MD5值相同,则从所述最终加密文件的所述第一MD5值之后提取出第二MD5值,以及从所述第二MD5值之后提取出初步加密文件;
通过MD5摘要信息算法获得所述初步加密文件的第四MD5值;
判断所述第四MD5值与所述第二MD5值是否相同;
若所述第四MD5值与所述第二MD5值相同,则基于所述AES解密秘钥并通过AES解密函数获得原始文件。
本发明第三方面提供了一种基于AES加密的文件加密装置,所述基于AES加密的文件加密装置包括:
秘钥生成模块,用于通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;
加密模块,用于基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;
第一MD5值计算模块,用于利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;
第二MD5值计算模块,用于利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;
文件头构建模块,用于构建包含文件加密验证信息的文件头;
文件封装模块,用于按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。
本发明第四方面提供了一种基于AES加密的文件加密设备,所述基于AES加密的文件加密设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于AES加密的文件加密设备执行如上述任一项所述的基于AES加密的文件加密方法。
本发明第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的基于AES加密的文件加密方法。
有益效果:本发明提供了一种基于AES加密的文件加密方法、解密方法及相关设备,其中方法包括:通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;构建包含文件加密验证信息的文件头;按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。本发明的文件加密方法除了对文件进行加密之外还将与加密相关的文件验证信息与加密后的文件进行一起封装,实现了后续对秘钥正确性以及加密文件完整性的验证,加密流程更完善。
附图说明
图1为本发明一种基于AES加密的文件加密方法的一个实施例示意图;
图2为本发明一种AES加密文件的解密方法的一个实施例示意图;
图3为本发明一种基于AES加密的文件加密装置的一个实施例示意图;
图4为本发明一种基于AES加密的文件加密设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于AES加密的文件加密方法、解密方法及相关设备。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示
或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
参阅图1,本发明第一方面提供了一种基于AES加密的文件加密方法,包括以下步骤:
S100、通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;在本发明中,AES加密秘钥改变了传统的生成模式,而是采用数组索引的方式来获得秘钥,这样,通过不同的数组就可以得到不同的秘钥,这样用户即使知道索引数组,在不知道索引数组和秘钥来源数组之间的关系的情况下,其也无法正确的获得真正的秘钥,从而提高了生成秘钥的安全性;
S200、基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;在本发明中,在获得了AES加密秘钥只有,直接使用AES加密秘钥对文件进行加密即可,本发明技术方案中所使用AES加密函数可以是现有的任意一种AES加密函数,AES加密的过程总的可以归纳为字节替代、行移位、列混淆以及轮钥加密;
S300、利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;在本发明中,所述第一MD5值的作用是后续用于验证AES解密秘钥的正确性;
S400、利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;在本发明中,所述第二MD5值的作用是用于后续验证所述初步加密文件在传输过程中是否被篡改,保证解密时初步加密文件的正确性和完整性;
S500、构建包含文件加密验证信息的文件头;在本发明中,文件头的主要作用是获取加密文件的一些属性信息以及判断文件所使用的加密类型,从而采用对应的解密算法进行解密;
S600、按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。在本发明中,通过将所述文件头、所述第一MD5值和所述第二MD5值与所述初步加密文件进行一起封装,从而实现了AES加密文件后续解密的自我验证功能。
具体来说,本发明为了解决文件解密时的自我验证问题,主要要解决的技术点有;如何判断文件是否加密。即文件合法性问题。如何判断密钥是否正确,如何判断解密后的文件是否正确。即文件是否解密成功,文件是否有损坏。总的来说,本发明的技术内容包含三个部分;如何生成高安全性的密钥。加密时如何封装文件。解密时如何判断:文件是否加密。密钥是否正确。解密后的文件是否正确。具体的技术手段是,设置一个文件头,用来验证文件自身的合法性,在加密后的文件中保存密钥的md5值,用来验证密钥正确性,在加密后的文件中保存文件md5值,用来解密的文件是否正确。
在本发明第一方面一种可选的实施方式中,所述通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥包括:
获取系统当前的UTC时间;为了每次生成的密钥都不相同,因此本发明中的AES加密秘钥采用UTC时间作为基础;
将所述UTC时间转换为以毫秒为单位的整数值;在本发明中,在获得了UTC时间之后,先需要把UTC时间变一个以毫秒为单位的64位整数值M;
通过预置的整数字符串转换算法将所述整数值转换成数字字符串;在获得了由UTC时间得到的整数值之后,接着就是把把整数值M转换成字符串,可以得到一个长度不低于12位的字符串str,示例性的,整数值和字符串之间的转换算法可以使用itoa()函数实现,如果转换后的字符串中存在数字,则把非数字删除;
在所述数字字符串加入适宜数量的随机数以使所述数字字符串可均等拆分得到24个数字元素;在本发明中,基于所述数字字符串中具有的数字个数确定需要加入的随机数的数量,随机数的加入的方式可以是在每两个字符串数字之间插入一个随机数,在本发明中,拆分得到24个数字元素优选的均由2个数字组成;
将24个所述数字元素与预设数值相除并取余,获得24个整数;在本发明中,获得了24个所述数字元素之后,再将24个所述数字元素中的每个元素去除以一个预设数值(例如40)来获得余数,获得24个余数构成的整数;
以24个所述整数作为索引从预设的秘钥来源数组获得24个映射字符,以24个映射字符组成的字符串作为AES加密秘钥。在本发明中,秘钥来源数组中的每个映射字符都会对应一个或多个不同的整数,当上述获得的余数构成的整数与某个映射字符对应的整数相同时,则用这个映射字符替代这个余数构成的整数,最后收集24个余数构成的整数分别对应的映射字符得到AES加密秘钥。
在本发明第一方面一种可选的实施方式中,所述通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥包括:
将26个字母,数字0-9,以及若干的特殊符号作为映射字符按照顺序存放到秘钥来源数组中,并为26个字母,数字0-9,以及若干的特殊符号分别配置对应的映射整数。在本发明中,为了加密秘药的多样性和完全性,密钥采用24个字符组成的字符串,这个字符串由数字0~9,26个字母,再加上四个特殊字符<、%、?、>组成。
在本发明第一方面一种可选的实施方式中,若所述整数作为索引确定的所述映射字符为字母,则通过预置的随机数生成器生成一个随机数,通过所述随机数的奇偶属性,确定所述字母是大写还是小写。在本发明中,为了进一步拓展秘钥的多样性还可以进一步对获得AES加密秘钥中的字母进行大小写区分,区分的方式则通过生成随机数的奇偶属性来设置,例如一个字母对应生成随机数为奇数,则将该字母变为大写,否则保持小写。
在本发明第一方面一种可选的实施方式中,所述构建包含文件加密验证信息的文件头包括:
以16个字节作为所述文件头的长度;在16个字节中的第1-3个字节与数据传输的信息;
将16个所述字节中的第4-7字节配置成用于存储文件类型标记位信息;在本发明中,示例性的,第4-7字节比如:AES1,用来验证文件是否为AES加密文件;
将16个所述字节中的第8-11字节配置成用于存储文件大小信息。在本发明中,第8-11字节比如2048byte,后续解密通过第8-11字节中记录的信息就可以知道加密前文件的大小信息。
在本发明第一方面一种可选的实施方式中,所述基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件之前包括:
判断待加密的文件的大小是否为16的整数倍;
若待加密的所述文件的大小不是16的整数倍,则在待加密的所述文件的末尾补入空白以使所述待加密的所述文件的大小等于16的整数倍。
在本发明中,因为AES加密要求加密数据的大小是16的倍数,如果不是,需要在文件末尾补上一段空白,因此加密后的数据大小和加密前的数据大小通常不相等。
为了更好的理解本发明技术方案,本本发明把秘钥的生成方法的完整流程单独提取出来进行说明:
如何生成高安全性的密钥:为了完全性,密钥采用24个字符组成的字符串,这个字符串由数字0~9,26个大写字母和小写字母,再加上四个特殊字符<、%、?、>组成。具体生成方法如下:
把26个大写字母、数字0~9、特殊符号<、%、?、>按照顺序存放到一个数组Symbols中。
为了每次生成的密钥都不相同,因此采用UTC时间作为基础,得到一个以毫秒为单位的64位整数值M,把M转换成字符串,可以得到一个长度不低于12位的字符串str。
加入随机数,把str重组成一个24个元素的整数数组。把字符串str中的前12个字符都分别加上一个随机数,并每间隔一个字符插入一个随机数,则可以得到一个24个元素的整数数组buffer。
遍历数组buffer,把buffer的每一个元素都和40取余,得到一个整数idx,把idx作为Symbols数组的索引值,从Symbols中取出对应的字符,即可组成一个24位长度的字符串密钥key。为了让密钥key包含大小写字母,还需要判断idx的值,当idx小于26时,从Symbols中取出的是字母,此外可以生成一个随机数N,根据N的奇偶来决定采用大小字母、还是小写字母。
加密时封装文件,加密后的文件一共由四个部分组成:
1、文件头header。首先设置一个文件头header,共16个字节,且把这32字节初始化成ASCII码值0;把header[4]~header[7]设置成文件类型标记位,比如:AES1,用来验证文件是否为加密文件;header[8]~header[11]用来保存待解密文件的文件大小filesize;因为AES加密要求加密数据的大小是16的倍数,如果不是,需要在文件末尾补上一段空白;因此加密后的数据大小和加密前的数据大小通常不相等。
2、密钥key的md5值,共16个字节,用来在解密时验证密码是否正确。
3、待加密文件的md5值,共16个字节。用来验证解密后的文件是否正确。
4、加密后的文件。AES加密时所用密钥是key的sha256散列值。
参见图2,本发明第二方面提供了一种AES加密文件的解密方法,包括以下步骤:
S001、接收加密终端发送的最终加密文件;
S002、解析所述最终加密文件的文件头,基于所述文件头中的文件加密验证信息判断所述最终加密文件是否是AES加密文件;
S003、若所述最终加密文件为AES加密文件,则接收输入的AES解密秘钥;
S004、通过MD5摘要信息算法获得所述AES解密秘钥的第三MD5值;
S005、判断所述第三MD5值与所述最终加密文件的文件头之后的第一MD5值是否相同;
S006、若所述第三MD5值和所述第一MD5值相同,则从所述最终加密文件的所述第一MD5值之后提取出第二MD5值,以及从所述第二MD5值之后提取出初步加密文件;
S007、通过MD5摘要信息算法获得所述初步加密文件的第四MD5值;
S008、判断所述第四MD5值与所述第二MD5值是否相同;
S009、若所述第四MD5值与所述第二MD5值相同,则基于所述AES解密秘钥并通过AES解密函数获得原始文件。
更具体的,本发明AES加密文件的解密过程为:
读取文件的前16个字节,得到header,判断header[4]~header[7]是否为AES1,如果不是,则目标文件不是一个有效的加密文件。如果是,则进行下一步。
如果是有效的加密文件,则继续读取下一个16字节数据,得到密钥的md5值keymd5。此时计算解码时传入的密钥key的md5,并与keymd5比较,如果不相同,则可断定密钥错误。如何相同则进行下一步。
继续读取第三个16字节数据,得到文件的md5值filemd5。
读取剩下的全部数据,也就是加密后的数据encData。并计算key的sha256,执行解密,得到解密后的数据data。
取出header[8]~header[11]4个字节的值,得到文件大小filesize,取data的前filesize个字节得到原始文件file。
验证解密后的文件是否正确。计算file的md5值,并与filemd5比较,如果不相同,表示待解密的文件遭到了损坏,如果相同,表示解密成功。
参见图3,本发明第三方面提供了一种基于AES加密的文件加密装置,所述基于AES加密的文件加密装置包括:
秘钥生成模块10,用于通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;
加密模块20,用于基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;
第一MD5值计算模块30,用于利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;
第二MD5值计算模块40,用于利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;
文件头构建模块50,用于构建包含文件加密验证信息的文件头;
文件封装模块60,用于按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。
在本发明第三方面一种可选的实施方式中,所述秘钥生成模块10包括:
UTC时间获取单元,用于获取系统当前的UTC时间;
UTC时间整数化单元,用于将所述UTC时间转换为以毫秒为单位的整数值;
字符串转换单元,用于通过预置的整数字符串转换算法将所述整数值转换成数字字符串;
字符串元素拆分单元,用于在所述数字字符串加入适宜数量的随机数以使所述数字字符串可均等拆分得到24个数字元素;
相除取余单元,用于将24个所述数字元素与预设数值相除并取余,获得24个整数;
字符映射单元,用于以24个所述整数作为索引从预设的秘钥来源数组获得24个映射字符,以24个映射字符组成的字符串作为AES加密秘钥。
在本发明第三方面一种可选的实施方式中,所述基于AES加密的文件加密装置还包括:
秘钥来源数组生成模块,用于将26个字母,数字0-9,以及若干的特殊符号作为映射字符按照顺序存放到秘钥来源数组中,并为26个字母,数字0-9,以及若干的特殊符号分别配置对应的映射整数。
在本发明第三方面一种可选的实施方式中,若所述整数作为索引确定的所述映射字符为字母,则通过预置的随机数生成器生成一个随机数,通过所述随机数的奇偶属性,确定所述字母是大写还是小写。
在本发明第三方面一种可选的实施方式中,所述文件头构建模块50包括:
文件头长度确定单元,用于以16个字节作为所述文件头的长度;
文件类型标记位信息配置单元,用于将16个所述字节中的第4-7字节配置成用于存储文件类型标记位信息;
文件大小信息配置单元,用于将16个所述字节中的第8-11字节配置成用于存储文件大小信息。
在本发明第三方面一种可选的实施方式中,所述基于AES加密的文件加密装置还包括:
文件大小判断模块,用于判断待加密的文件的大小是否为16的整数倍;
文件大小凑整模块,用于若待加密的所述文件的大小不是16的整数倍,则在待加密的所述文件的末尾补入空白以使所述待加密的所述文件的大小等于16的整数倍。
图4是本发明实施例提供的一种基于AES加密的文件加密设备的示意图,该基于AES加密的文件加密设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器90(central processing units,CPU)(例如,一个或一个以上处理器)和存储器100,一个或一个以上存储应用程序或数据的存储介质110(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于AES加密的文件加密设备中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在基于AES加密的文件加密上执行存储介质中的一系列指令操作。
本发明的基于AES加密的文件加密设备还可以包括一个或一个以上电源120,一个或一个以上有线或无线网络接口130,一个或一个以上输入输出接口140,和/或,一个或一个以上操作系统,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图4示出的基于AES加密的文件加密设备结构并不构成对本发明基于AES加密的文件加密设备的具体限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的基于AES加密的文件加密方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于AES加密的文件加密方法,其特征在于,包括以下步骤:
通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;
基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;
利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;
利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;
构建包含文件加密验证信息的文件头;
按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。
2.根据权利要求1所述的基于AES加密的文件加密方法,其特征在于,所述通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥包括:
获取系统当前的UTC时间;
将所述UTC时间转换为以毫秒为单位的整数值;
通过预置的整数字符串转换算法将所述整数值转换成数字字符串;
在所述数字字符串加入适宜数量的随机数以使所述数字字符串可均等拆分得到24个数字元素;
将24个所述数字元素与预设数值相除并取余,获得24个整数;
以24个所述整数作为索引从预设的秘钥来源数组获得24个映射字符,以24个映射字符组成的字符串作为AES加密秘钥。
3.根据权利要求2所述的基于AES加密的文件加密方法,其特征在于,所述通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥之前包括:
将26个字母,数字0-9,以及若干的特殊符号作为映射字符按照顺序存放到秘钥来源数组中,并为26个字母,数字0-9,以及若干的特殊符号分别配置对应的映射整数。
4.根据权利要求3所述的基于AES加密的文件加密方法,其特征在于,若所述整数作为索引确定的所述映射字符为字母,则通过预置的随机数生成器生成一个随机数,通过所述随机数的奇偶属性,确定所述字母是大写还是小写。
5.根据权利要求1所述的基于AES加密的文件加密方法,其特征在于,所述构建包含文件加密验证信息的文件头包括:
以16个字节作为所述文件头的长度;
将16个所述字节中的第4-7字节配置成用于存储文件类型标记位信息;
将16个所述字节中的第8-11字节配置成用于存储文件大小信息。
6.根据权利要求1所述的基于AES加密的文件加密方法,其特征在于,所述基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件之前包括:
判断待加密的文件的大小是否为16的整数倍;
若待加密的所述文件的大小不是16的整数倍,则在待加密的所述文件的末尾补入空白以使所述待加密的所述文件的大小等于16的整数倍。
7.一种AES加密文件的解密方法,其特征在于,包括以下步骤:
接收加密终端发送的最终加密文件;
解析所述最终加密文件的文件头,基于所述文件头中的文件加密验证信息判断所述最终加密文件是否是AES加密文件;
若所述最终加密文件为AES加密文件,则接收输入的AES解密秘钥;
通过MD5摘要信息算法获得所述AES解密秘钥的第三MD5值;
判断所述第三MD5值与所述最终加密文件的文件头之后的第一MD5值是否相同;
若所述第三MD5值和所述第一MD5值相同,则从所述最终加密文件的所述第一MD5值之后提取出第二MD5值,以及从所述第二MD5值之后提取出初步加密文件;
通过MD5摘要信息算法获得所述初步加密文件的第四MD5值;
判断所述第四MD5值与所述第二MD5值是否相同;
若所述第四MD5值与所述第二MD5值相同,则基于所述AES解密秘钥并通过AES解密函数获得原始文件。
8.一种基于AES加密的文件加密装置,其特征在于,所述基于AES加密的文件加密装置包括:
秘钥生成模块,用于通过数组索引的方式从预设的秘钥来源数组中获取AES加密秘钥;
加密模块,用于基于所述AES加密秘钥并利用AES加密函数对待加密的文件进行加密,获得初步加密文件;
第一MD5值计算模块,用于利用MD5摘要信息算法获取所述AES加密秘钥的第一MD5值;
第二MD5值计算模块,用于利用MD5摘要信息算法获取所述初步加密文件的第二MD5值;
文件头构建模块,用于构建包含文件加密验证信息的文件头;
文件封装模块,用于按顺序将所述文件头、所述第一MD5值和所述第二MD5值封装到所述初步加密文件的头部,获得最终加密文件。
9.一种基于AES加密的文件加密设备,其特征在于,所述基于AES加密的文件加密设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于AES加密的文件加密设备执行如权利要求1-7中任一项所述的基于AES加密的文件加密方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于AES加密的文件加密方法。
CN202211305356.7A 2022-10-24 2022-10-24 基于aes加密的文件加密方法、解密方法及相关设备 Pending CN115580477A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211305356.7A CN115580477A (zh) 2022-10-24 2022-10-24 基于aes加密的文件加密方法、解密方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211305356.7A CN115580477A (zh) 2022-10-24 2022-10-24 基于aes加密的文件加密方法、解密方法及相关设备

Publications (1)

Publication Number Publication Date
CN115580477A true CN115580477A (zh) 2023-01-06

Family

ID=84587907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211305356.7A Pending CN115580477A (zh) 2022-10-24 2022-10-24 基于aes加密的文件加密方法、解密方法及相关设备

Country Status (1)

Country Link
CN (1) CN115580477A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116092623A (zh) * 2023-04-12 2023-05-09 四川执象网络有限公司 一种基于基层医学质控的健康数据管理方法
CN117579254A (zh) * 2024-01-16 2024-02-20 金财数科(北京)信息技术有限公司 一种数据传输的加密方法及系统、装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116092623A (zh) * 2023-04-12 2023-05-09 四川执象网络有限公司 一种基于基层医学质控的健康数据管理方法
CN116092623B (zh) * 2023-04-12 2023-07-28 四川执象网络有限公司 一种基于基层医学质控的健康数据管理方法
CN117579254A (zh) * 2024-01-16 2024-02-20 金财数科(北京)信息技术有限公司 一种数据传输的加密方法及系统、装置
CN117579254B (zh) * 2024-01-16 2024-03-12 金财数科(北京)信息技术有限公司 一种数据传输的加密方法及系统、装置

Similar Documents

Publication Publication Date Title
CN109429222B (zh) 一种对无线网络设备升级程序及通讯数据加密的方法
CN115580477A (zh) 基于aes加密的文件加密方法、解密方法及相关设备
US9537657B1 (en) Multipart authenticated encryption
US8938067B2 (en) Format preserving encryption methods for data strings with constraints
CN102163268B (zh) 在执行期间验证软件代码的完整性的方法和设备
JP2021513141A (ja) 2次元バーコードの生成及び識別
CN110278115B (zh) 热更新方法及装置
CN111639306A (zh) 离线软件授权方法、装置、设备及存储介质
KR101989813B1 (ko) 특정 포맷을 가지는 대체 데이터의 생성 및 검증
CN110138739B (zh) 数据信息加密方法、装置、计算机设备及存储介质
CN111131278A (zh) 数据处理方法及装置、计算机存储介质、电子设备
CN110929291A (zh) 一种存取文本文件的方法、装置和计算机可读存储介质
CN110955896A (zh) 一种通过近场通信实现单片机固件安全升级的方法
CN112383522B (zh) 函数参数数据传输加密方法、系统、装置及可读存储介质
CN110995720B (zh) 加密方法、装置、主机端及加密芯片
CN107911354B (zh) 一种复合并行数据加密方法
CN104732159A (zh) 一种文件处理方法及装置
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
KR102028151B1 (ko) 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
CN105718978B (zh) Qr码的生成方法、装置及解码方法、装置
CN116846548A (zh) 一种带格式数据密文的生成方法、解密方法和通信系统
CN108615155B (zh) 一种鉴别交易信息完整性的方法
CN116680673A (zh) 显示器的身份校验方法、装置以及计算机设备
CN115766244A (zh) 车联网信息加密方法、装置、计算机设备和存储介质
CN114943205A (zh) 一种身份识别编码uuid生成方法、系统、存储介质及电子设备

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518000 Building 1901, 1902, 1903, Qianhai Kexing Science Park, Labor Community, Xixiang Street, Bao'an District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Flash Scissor Intelligent Technology Co.,Ltd.

Address before: 518000 Unit 9ABCDE, Building 2, Haihong Industrial Plant Phase II, Haihong Industrial Plant, West Side of Xixiang Avenue, Labor Community, Xixiang Street, Bao'an District, Shenzhen, Guangdong

Applicant before: Shenzhen big brother Technology Co.,Ltd.