CN106788995B - 文件加密方法及装置 - Google Patents

文件加密方法及装置 Download PDF

Info

Publication number
CN106788995B
CN106788995B CN201611118321.7A CN201611118321A CN106788995B CN 106788995 B CN106788995 B CN 106788995B CN 201611118321 A CN201611118321 A CN 201611118321A CN 106788995 B CN106788995 B CN 106788995B
Authority
CN
China
Prior art keywords
file
character
character string
encryption
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.)
Active
Application number
CN201611118321.7A
Other languages
English (en)
Other versions
CN106788995A (zh
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.)
Baosheng China Technology Industry Co ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611118321.7A priority Critical patent/CN106788995B/zh
Publication of CN106788995A publication Critical patent/CN106788995A/zh
Application granted granted Critical
Publication of CN106788995B publication Critical patent/CN106788995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

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

Abstract

本发明提供一种文件加密方法及装置,属于数据安全技术领域。该方法包括:获取待加密的第一目标文件及用户输入的加密字符串;对加密字符串进行解析,根据解析结果生成加密密钥;基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。本发明通过获取待加密的第一目标文件及用户输入的加密字符串。对加密字符串进行解析,根据解析结果生成加密密钥。基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密。由于加密字符串是用户输入的,而用户在输入加密字符串时思维随机性较大,且输入的字符种类较多样,从而对应生成的加密密钥破解难度较大。因此,文件加密的安全性较高。

Description

文件加密方法及装置
技术领域
本发明涉及数据安全技术领域,更具体地,涉及一种文件加密方法及装置。
背景技术
随着计算机网络技术及信息技术的快速发展,诸如电子商务等数字化产业正在世界范围内迅速崛起。无论是政府、企业还是个人,在存储介质中存储文件时,都需要对一些重要文件进行加密,以防止信息泄露。因此,如何对文件进行加密是人们关注的问题。现有的文件加密方法主要是通过预存储的加密密钥对文件进行加密,得到加密后的数据。相应地,解密过程主要是通过预存储的解密密钥对加密后的数据进行解密,得到解密后的文件。其中,加密密钥与解密密钥一致。
在实现本发明的过程中,发现现有技术至少存在以下问题:由于加密密钥是预先存储的固定字符,相关破解者很容易入侵移动终端以获取预存储的加密密钥,并根据加密密钥对加密后的第一数据进行破解并窃取加密后的文件,从而导致文件信息泄露。因此,文件加密的安全性不高。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的文件加密方法及装置。
根据本发明的一方面,提供了一种文件加密方法,该方法包括:
获取待加密的第一目标文件及用户输入的加密字符串;
对加密字符串进行解析,根据解析结果生成加密密钥;
基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。
根据本发明的另一方面,提供了一种文件加密装置,该装置包括:
第一获取模块,用于获取待加密的第一目标文件及用户输入的加密字符串;
解析模块,用于对加密字符串进行解析,根据解析结果生成加密密钥;
加密模块,用于基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。
本申请提出的技术方案带来的有益效果是:
通过获取待加密的第一目标文件及用户输入的加密字符串。对加密字符串进行解析,根据解析结果生成加密密钥。基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。由于加密字符串是用户输入的,而用户在输入加密字符串时思维随机性较大,且输入的字符种类较多样,从而对应生成的加密密钥破解难度较大。另外,由于用户输入字符中可加入预设类型表情字符,如emoji表情,从而使得对应生成的加密密钥破解难度更大。因此,文件加密的安全性较高。
附图说明
图1为本发明实施例的一种文件加密方法的流程示意图;
图2为本发明实施例的一种文件加密方法的流程示意图;
图3为本发明实施例的一种文件加密装置的结构示意图;
图4为本发明实施例的一种文件加密装置的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
现有的文件加密过程主要是通过预存储的加密密钥对文件进行加密,得到加密后的数据。相应地,在对文件进行解密时,通过预存储的解密密钥对加密后的数据进行解密。其中,预存储的加密密钥可以由预先设定的英文字符或数字生成,加密密钥与解密密钥一致。由于加密密钥与解密密钥由终端在本地保存,且加密密钥与解密密钥是由预先设定的固定字符生成,从而导致相关破解者很容易地入侵移动终端以获取预存储的加密密钥,并根据加密密钥对加密后的第一数据进行破解并窃取加密后的文件,从而导致文件信息泄露。因此,文件加密的安全性不高。
针对现有技术中的问题,本发明实施例提供了一种文件加密方法。需要说明的是,本实施例及后续实施例所提供的文件加密方法,以及该加密方法对应的文件解密方法可适用于任意类型终端,包括但不限于移动终端或带有处理功能的本地终端,本实施例及后续实施例对此不作具体限定。考虑到现如今移动终端使用率相对较高,本实施例及后续实施例所提到的终端可均指代移动终端。移动终端可包括手机、平板电脑及智能手表等,本实施例对此不作具体限定。
另外,由于移动终端上安装有不同的操作***,从而为了便于说明,本实施例及后续实施例主要是对Android***中文件加密方法,以及该文件加密方法对应的文件解密方法进行说明。当然,其它操作***如IOS,也可采样本实施例提供的文件加密或文件解密方法,只需对应修改实现代码即可,本实施例对此不作具体限定。
参见图1,本实施例提供的方法流程包括:101、获取待加密的第一目标文件及用户输入的加密字符串;102、对加密字符串进行解析,根据解析结果生成加密密钥;103、基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。
本发明实施例提供的方法,通过获取待加密的第一目标文件及用户输入的加密字符串。对加密字符串进行解析,根据解析结果生成加密密钥。基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。由于加密字符串是用户输入的,而用户在输入加密字符串时思维随机性较大,且输入的字符种类较多样,从而对应生成的加密密钥破解难度较大。另外,由于用户输入字符中可加入预设类型表情字符,如emoji表情,从而使得对应生成的加密密钥破解难度更大。因此,文件加密的安全性较高。
作为一种可选实施例,获取待加密的第一目标文件,包括:
根据用户输入的文件选择指令,获取文件地址字符串;
当检测到文件地址字符串对应的文件存在时,获取文件地址字符串对应的数据类型;
当文件地址字符串对应的数据类型为文件时,获取文件地址字符串对应的文件,并作为待加密的第一目标文件。
作为一种可选实施例,对加密字符串进行解析,根据解析结果生成密钥,包括:
获取加密字符串中每个字符对应的预设类型编码;
根据每个字符对应的预设类型编码生成加密密钥。
作为一种可选实施例,获取加密字符串中每个字符对应的预设类型编码,包括:
对于加密字符串中的任一字符,判断任一字符是否为预设类型表情字符;
当任一字符为预设表情类型字符时,获取任一字符的预设类型编码。
作为一种可选实施例,判断任一字符是否为预设类型表情字符,包括:
获取任一字符的编码信息;
当编码信息在预设范围内时,确定任一字符为预设类型表情字符;
当编码信息不在预设范围内时,确定任一字符不为预设类型表情字符。
作为一种可选实施例,根据每个字符对应的预设类型编码生成加密密钥,包括:
对每个字符对应的预设类型编码进行拼接,得到密钥字符串;
选取密钥字符串中的字符;
对选取的字符进行拼接,得到加密密钥。
作为一种可选实施例,选取密钥字符串中的字符,包括:
获取密钥字符串对应的预设间隔;
按照预设间隔,从密钥字符串中选取预设数量个字符。
作为一种可选实施例,预设类型表情字符为emoji表情,预设类型编码为unicode编码,对加密字符串进行解析,根据解析结果生成加密密钥,包括:
对于加密字符串中任一字符,当任一字符对应的编码信息介于 0xd800与0xdbff之间,或者介于0x2100与0x27ff之间且不等于0x263b 时,将任一字符作为emoji表情,并获取对应的unicode编码,将对应的unicode编码存入到unicode字符串中;
当任一字符不为emoji表情时,将任一字符转换为unicode编码,将转换的unicode编码存入到unicode字符串中;
获取用户输入的预设间隔,按照预设间隔,从unicode字符串中选取字符;
按照选出的字符顺序对选出的每个字符进行拼接,得到加密密钥。
作为一种可选实施例,通过加密密钥,对第一目标文件进行加密之后,还包括:
获取待解密的第二目标文件及用户输入的解密字符串;
当第二目标文件为第一目标文件所生成的加密文件时,将解密字符串与加密字符串进行比对;
当解密字符串与加密字符串一致时,对解密字符串进行解析,根据对应的解析结果生成解密密钥;
根据第二目标文件对应的文件流及解密密钥,生成对应的解密文件流,并将解密文件流写入到保存的解密文件中。
作为一种可选实施例,将解密字符串与加密字符串进行比对之后,还包括:
当解密字符串与加密字符串不一致时,提示用户文件解密失败。
作为一种可选实施例,将解密文件流写入到保存的解密文件中之前,还包括:
获取用户选择的解密文件保存地址;
根据第二目标文件的占用空间,估计对应的解密文件占用空间;
将解密文件保存地址对应的存储空间与解密文件占用空间进行比对;
当解密文件占用空间大于存储空间时,提示用户选择的存储空间不足。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
由于按照固定字符生成加密密钥很容易被破解,而基于用户思维随机性及字符种类的多样性,产生的加密字符串对应的破解难度较大。按照上述理论,基于上述图1对应实施例中的内容,本发明实施例提供了一种文件加密方法及文件解密方法,下面对终端的文件加密过程及对应的文件解密过程进行具体阐述。
参见图2,本实施例提供的方法流程包括:201、获取待加密的第一目标文件及用户输入的加密字符串;202、对加密字符串进行解析,根据解析结果生成加密密钥;203、基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中;204、获取待解密的第二目标文件及用户输入的解密字符串; 205、当第二目标文件为第一目标文件所生成的加密文件时,将解密字符串与加密字符串进行比对;206、当解密字符串与加密字符串一致时,对解密字符串进行解析,根据对应的解析结果生成解密密钥;207、根据第二目标文件对应的文件流及解密密钥,生成对应的解密文件流,并将解密文件流写入到保存的解密文件中。
其中,201、获取待加密的第一目标文件及用户输入的加密字符串。
由于终端通常存储的文件较多,从而在执行本步骤之前可获取一个待加密的第一目标文件。本实施例不对获取待加密的第一目标文件的方式作具体限定,包括但不限于:根据用户输入的文件选择指令,获取文件地址字符串;当检测到文件地址字符串对应的文件存在时,获取文件地址字符串对应的数据类型;当文件地址字符串对应的数据类型为文件时,获取文件地址字符串对应的文件,并作为待加密的第一目标文件。
具体地,用户可通过终端***自带的文件浏览器来选择一个文件。相应地,终端根据用户输入的文件选择指令,可获得一个文件地址字符串。其中,文件地址字符串对应的内容可以为文件所在的文件目录信息,本实施例不对文件地址字符串的内容作具体限定。在Android ***中,通过onActivityResult方法中可获取用户选择文件时对应的文件地址字符串。
由于在根据文件地址获取文件时,可能会存在意外情况而无法获取文件,从而终端在获取到文件地址字符串后,可先检测文件地址字符串对应的文件是否存在。在Android***中,可根据文件地址字符串创建一个File对象,通过该File对象执行exists方法来判断文件是否存在。当exists方法返回的是false时,表示文件不存在。当exists方法返回的true时,表明文件存在。
当检测到文件地址字符串对应的文件存在时,由于本实施例针对的主要是对一个文件进行加密,从而在检测到文件地址字符串对应的文件存在后,还可以进一步地判断文件地址字符串对应的是一个文件还是一个文件夹,本实施例对此不作具体限定。具体地,可获取文件地址字符串对应的数据类型,当文件地址字符串对应的数据类型为文件时,可再获取文件地址字符串对应的文件。在Android***中,可通过File对象执行isDirectory方法来判断该文件是否为文件夹。当 isDirectory方法返回的是false时,表示该文件不为文件夹。当 isDirectory方法返回的true时,表明该文件为文件夹。
当获取到待加密的第一目标文件后,可获取用户输入的加密字符串。其中,加密字符串可以为任意字符串,其包含的内容可包括字母、文字、数字、中文、外文及预设类型表情字符等,本实施例不对加密字符串的内容作具体限定,也不对加密字符串的长度作具体限定。预设类型表情字符可以为emoji表情或即时通讯应用所自带的表情等,本实施例对此不作具体限定。
其中,emoji表情为日本在无线通信中所使用的视觉情感符号,目前已被大多数现代计算机***所兼容的Unicode编码采纳,并普遍应用于各种手机短信和社交网络中。相比现有技术中的固定字符或固定字符串,由于用户在输入加密字符串时思维随机性较大,且输入的字符种类较多样,从而破解难度较大。另外,加入了emoji表情的加密字符串对应的破解难度则更大。相应地,文件加密的安全性也越高。
其中,202、对加密字符串进行解析,根据解析结果生成加密密钥。
由于加密密钥通常是一组二进制或者十六进制的编码,从而在对文件进行加密之前,需要先对包含各种类型字符的加密字符串进行解析。关于对加密字符串进行解析,根据解析结果生成加密密钥进行解析的方式,本实施例对此不作具体限定,包括但不限于:获取加密字符串中每个字符对应的预设类型编码;根据每个字符对应的预设类型编码生成加密密钥。
在获取加密字符串中每个字符对应的预设类型编码时,由于加密字符串中既存在终端可识别的字符,如中文、字母及数字等,还存在终端无法直接识别的字符,如emoji表情,从而可先让终端判断出那些无法直接识别的字符。相应地,本实施例不对获取加密字符串中每个字符对应的预设类型编码的方式作具体限定,包括但不限于:对于加密字符串中的任一字符,判断任一字符是否为预设类型表情字符;当任一字符为预设表情类型字符时,获取任一字符的预设类型编码。
由于预设类型表情字符在终端中通常对应着固定范围的编码信息,从而可根据编码信息,让终端能够识别出预设表情类型字符。相应地,本实施例不对判断任一字符是否为预设类型表情字符的方式作具体限定,包括但不限于:获取任一字符的编码信息;当编码信息在预设范围内时,确定任一字符为预设类型表情字符;当编码信息不在预设范围内时,确定任一字符不为预设类型表情字符。
例如,以预设表情类型字符为emoji表情为例。由于emoji表情的编码信息通常介于0xd800与0xdbff之间,从而当任一字符的编码信息在这两个16进制数据之间时,则该字符为emoji表情。相应地,预设范围为0xd800至0xdbff。
需要说明的是,由于emoji表情是实时更新的,新增emoji表情对应的编码信息可能并不在0xd800与0xdbff之间,从而具体实施时可根据emoji表情的最新数据确定相应的预设范围及判断过程,本实施例对此不作具体限定。以emoji表情最近新增的部分数据为例,当判断任一字符的编码信息不在0xd800与0xdbff之间时,可进行二次判断,即判断该字符的编码信息是否在0x2100与0x27ff之间,且判断是否等于 0x263b。当该字符的编码信息在0x2100与0x27ff之间,且该字符的编码信息不等于0x263b时,则该字符为emoji表情。当该字符不在上述预设范围内或者不满足上述判断条件时,可确定该字符不为emoji表情,即该字符为可被终端直接识别的中文、数字及字母等。
当任一字符为预设表情类型字符时,可直接获取预设表情类型字符的预设类型编码。当任一字符不为预设表情类型字符时,可将该字符转换为对应的预设类型编码。其中,预设类型编码可以为unicode编码或UTF-8等,本实施例对此不作具体限定。
由于加密字符串中可能会存在多个预设表情类型字符,且多个预设表情类型字可能会处于加密字符串中不同的位置,从而在获取到预设表情类型字符的预设类型编码后,可将每个预设表情类型字符的预设类型编码存储至一个临时字符串中,并记录每个预设表情类型字符在加密字符串中所处的位置。相应地,对于加密字符串中的非预设表情类型字符,也可将转换后的预设类型编码存储至该临时字符串中,并同时记录每个非预设表情类型字符在加密字符串中所处的位置。通过上述过程,能够便于后续对多个预设类型编码进行拼接,本实施例对此不作具体限定。
基于上述解析过程,在获取到加密字符串中每个字符对应的预设类型编码后,可根据每个字符对应的预设类型编码生成加密密钥。本实施例不对根据每个字符对应的预设类型编码生成加密密钥的方式作具体限定,包括但不限于:对每个字符对应的预设类型编码进行拼接,得到密钥字符串;选取密钥字符串中的字符;对选取的字符进行拼接,得到加密密钥。
由上述解析过程可知,加密字符串中预设类型表情字符与非预设表情类型字符所处的位置通常是错开的。因此,在对每个字符对应的预设类型编码进行拼接时,可先将预设类型表情字符对应的预设类型编码进行拼接,得到第一子密钥字符串。将非预设类型表情字符对应的预设类型编码进行拼接,得到第二子密钥字符串。将第一子密钥字符串与第二子密钥字符串进行拼接,得到密钥字符串。其中,第一子密钥字符串在前面,第二子密钥字符串在后面。或者,第一子密钥字符串在后面,第二子密钥字符串在前面,本实施例不对字符串拼接顺序作具体限定。
优选地,为了体现用户输入加密字符串时字符之间的时序性,可基于上述过程中记录的每个字符在加密字符串中所处的位置,对每个字符对应的预设类型编码进行拼接,本实施例对此不作具体限定。
在得到密钥字符串后,由于密钥字符串主要是由预设类型编码组成,如unicode编码,字串长度比较长,从而为了减少后续计算量并提高计算速度,可先选取密钥字符串中的字符。在筛选出一定数量的字符后,再对选取的字符进行拼接,得到加密密钥。
本实施例不对选取密钥字符串中的字符的方式作具体限定,包括但不限于:获取加密密钥中字符的预设数量;按照预设间隔,从密钥字符串中选取预设数量个字符。其中,预设数量为选取密钥字符串中字符时所要选取的字符数量。预设数量可以由用户输入,即由用户确定选取字符的个数,本实施例对此不作具体限定。另外,预设间隔也可由用户输入,预设间隔的长度可以为1,本实施例对此不作具体限定。
通过上述选取过程,由于在选取密钥字符串中的字符后,拼接得到的加密密钥已经与用户输入的加密字符串没有什么联系了,从而破解者即时得到加密字符串,也很难破解出加密密钥。基于上述过程所提到的用户输入字符时的思维随机性及字符多样性,从密钥字符串中选取字符生成加密密钥的过程,能够进一步地提高后续文件加密的安全性。
为了便于理解,结合上述内容,以预设类型表情字符为emoji表情,预设类型编码为unicode编码为例。对加密字符串进行解析,根据解析结果生成加密密钥的具体实现方式可如下:对于加密字符串中任一字符,当任一字符对应的编码信息介于0xd800与0xdbff之间,或者介于 0x2100与0x27ff之间且不等于0x263b时,将任一字符作为emoji表情,并获取对应的unicode编码,将对应的unicode编码存入到unicode字符串中;当任一字符不为emoji表情时,将任一字符转换为unicode编码,将转换的unicode编码存入到unicode字符串中;获取用户输入的预设间隔,按照预设间隔,从unicode字符串中选取字符;按照选出的字符顺序对选出的每个字符进行拼接,得到加密密钥。
其中,203、基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。
本步骤所使用的加密算法可以为对称密码体制加密算法,本实施例对此不作具体限定。在Android***中,该加密过程可用如下代码实现:
Figure BDA0001173806400000111
Figure BDA0001173806400000121
上述过程主要是先使用Cipher创建一个加密类,并将this.Key作为参数传入。其中,DES表示对称密码体制加密算法,this.key表示上述步骤202中生成的加密密钥。该密钥进行写入后,可开始文件流。将文件流加入到加密流CipherInputStream中进行加密,并将加密后的数据写入到保存的文件中。最终,保存得到的文件即为加密后的第一目标文件。
考虑到在对文件进行加密后,用户可能还需要在读取文件时对文件进行解密,从而本实施例还提供了一种文件解密方法,具体过程详见后续步骤204至步骤207中的内容。
其中,204、获取待解密的第二目标文件及用户输入的解密字符串。
本步骤待解密的第二目标文件可以为上述步骤203中加密后的第一目标文件,也可以为按照上述步骤201至步骤203中的方法所加密后的其它目标文件,本实施例对此不作具体限定。在获取待解密的第二目标文件及用户输入的解密字符串时,可参考上述步骤201中获取第一目标文件及加密字符串的方式,此处不再赘述。
其中,205、当第二目标文件为第一目标文件所生成的加密文件时,将解密字符串与加密字符串进行比对。
当第二目标文件为第一目标文件所生成的加密文件时,由于采用的是对称密码机制加密算法,从而用户输入的解密字符串,需要与上述步骤201中用户输入的加密字符串长度相同且内容一致,以保证解密成功。因此,本步骤需要将解密字符串与加密字符串进行比对,确保解密字符串与加密字符串是否一致。
其中,206、当解密字符串与加密字符串一致时,对解密字符串进行解析,根据对应的解析结果生成解密密钥。
由于上述步骤201中用户输入的加密字符串并非加密密钥,而是对加密字符串进行解析,根据解析结果生成的加密密钥,同时由于加密密钥与解密密钥需要一致,从而在本步骤中可按照上述步骤202中相同的过程,对解密字符串进行解析,根据对应的解析结果生成解密密钥。
需要说明的是,当解密字符串与加密字符串不一致时,可提示用户文件解密失败。此时用户可重复上述步骤204及后续步骤,本实施例对此不作具体限定。
其中,207、根据第二目标文件对应的文件流及解密密钥,生成对应的解密文件流,并将解密文件流写入到保存的解密文件中。
基于上述步骤203中的内容,本步骤同样可采用对称密码体制加密算法对第二目标文件进行解密,本实施例对此不作具体限定。在 Android***中,该解密过程可用如下代码实现:
Figure BDA0001173806400000131
上述过程主要是初始化一个des方法Cipher,通过创建文件流并将文件流及解密信息一起传入,生成一个解密的文件流并写入到文件中。当输入的解密字符串错误时,解出来的会是乱码。相应地,会生成一个用户无法使用的无意义文件。当解密字符串正确时,则会生成一个解密文件,该文件即为用户最终所需要的文件。
需要说明的是,由于在对文件解密后,解密出来的文件也需要具***置进行存放,从而在将解密文件流写入到保存的解密文件中之前,还可以获取用户选择的解密文件保存地址;根据第二目标文件的占用空间,估计对应的解密文件占用空间;将解密文件保存地址对应的存储空间与解密文件占用空间进行比对;当解密文件占用空间大于存储空间时,提示用户选择的存储空间不足。
其中,解密文件保存地址可以由用户通过选择文件目录路径进行指定,本实施例对此不作具体限定。当解密文件占用空间不大于存储空间时,在对第二目标文件进行解密得到解密文件后,可将解密文件存储至解密文件保存地址对应的存储空间中。
通过上述步骤204至步骤207中输入解密字符串对文件进行解密的方式,除了知道加密字符串的用户之外,其他人无法获得相应的解密字符串,且无法通过其它方式解密文件,从而能够提高文件加密的安全性。
本发明实施例提供的方法,通过获取待加密的第一目标文件及用户输入的加密字符串。对加密字符串进行解析,根据解析结果生成加密密钥。基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。由于加密字符串是用户输入的,而用户在输入加密字符串时思维随机性较大,且输入的字符种类较多样,从而对应生成的加密密钥破解难度较大。另外,由于用户输入字符中可加入预设类型表情字符,如emoji表情,从而使得对应生成的加密密钥破解难度更大。因此,文件加密的安全性较高。
另外,由于在根据密钥字符串生成加密密钥时,可根据用户输入的字符个数,筛选出一定数量的字符进行拼接得到加密密钥,从而能够减少加密密钥的复杂度,进而后续在根据加密密钥加密文件时,能够降低后续计算量且提高后续计算速度。因此,可提高加密效率。
再次,由于在选取密钥字符串中的字符后,拼接得到的加密密钥已经与用户输入的加密字符串没有什么联系了,从而破解者即时得到加密字符串,也很难破解出加密密钥。基于用户输入字符时的思维随机性、字符多样性、加密密钥的长度及加密密钥本身的字符串顺序,能够进一步地提高后续文件加密的安全性。
最后,通过获取待解密的第二目标文件及用户输入的解密字符串,当第二目标文件为第一目标文件所生成的加密文件时,将解密字符串与加密字符串进行比对。当解密字符串与加密字符串一致时,对解密字符串进行解析,根据对应的解析结果生成解密密钥。根据第二目标文件对应的文件流及解密密钥,生成对应的解密文件流,并将解密文件流写入到保存的解密文件中。由于解密文件需要输入对应的解密字符串,而除了知道加密字符串的用户之外,其他人无法获得相应的解密字符串,且无法通过其它方式解密文件,从而在文件解密这一方面也能提高文件的安全性。
本发明实施例提供了一种文件加密装置,该装置用于执行上述图 1或图2对应的实施例所提供的文件加密方法。参见图3,该装置包括:
第一获取模块301,用于获取待加密的第一目标文件及用户输入的加密字符串;
第一解析模块302,用于对加密字符串进行解析,根据解析结果生成加密密钥;
加密模块303,用于基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。
作为一种可选实施例,第一获取模块301,用于根据用户输入的文件选择指令,获取文件地址字符串;当检测到文件地址字符串对应的文件存在时,获取文件地址字符串对应的数据类型;当文件地址字符串对应的数据类型为文件时,获取文件地址字符串对应的文件,并作为待加密的第一目标文件。
作为一种可选实施例,解析模块302,包括:
获取单元,用于获取加密字符串中每个字符对应的预设类型编码;
生成单元,用于根据每个字符对应的预设类型编码生成加密密钥。
作为一种可选实施例,获取单元,包括:
判断子单元,用于对于加密字符串中的任一字符,判断任一字符是否为预设类型表情字符;
获取子单元,用于当任一字符为预设表情类型字符时,获取任一字符的预设类型编码。
作为一种可选实施例,判断子单元,用于获取任一字符的编码信息;当编码信息在预设范围内时,确定任一字符为预设类型表情字符;当编码信息不在预设范围内时,确定任一字符不为预设类型表情字符。
作为一种可选实施例,生成单元,包括:
第一拼接子单元,用于对每个字符对应的预设类型编码进行拼接,得到密钥字符串;
选取子单元,用于选取密钥字符串中的字符;
第二拼接子单元,用于对选取的字符进行拼接,得到加密密钥。
作为一种可选实施例,选取子单元,用于获取加密密钥中字符的预设数量;按照预设间隔,从密钥字符串中选取预设数量个字符。
作为一种可选实施例,预设类型表情字符为emoji表情,预设类型编码为unicode编码,解析模块302,用于对于加密字符串中任一字符,当任一字符对应的编码信息介于0xd800与0xdbff之间,或者介于 0x2100与0x27ff之间且不等于0x263b时,将任一字符作为emoji表情,并获取对应的unicode编码,将对应的unicode编码存入到unicode字符串中;当任一字符不为emoji表情时,将任一字符转换为unicode编码,将转换的unicode编码存入到unicode字符串中;获取用户输入的预设间隔,按照预设间隔,从unicode字符串中选取字符;按照选出的字符顺序对选出的每个字符进行拼接,得到加密密钥。
作为一种可选实施例,参见图4,该装置还包括:
第二获取模块304,用于获取待解密的第二目标文件及用户输入的解密字符串;
比对模块305,用于当第二目标文件为第一目标文件所生成的加密文件时,将解密字符串与加密字符串进行比对;
第二解析模块306,用于当解密字符串与加密字符串一致时,对解密字符串进行解析,根据对应的解析结果生成解密密钥;
解密模块307,根据第二目标文件对应的文件流及解密密钥,生成对应的解密文件流,并将解密文件流写入到保存的解密文件中。
本发明实施例提供的装置,通过获取待加密的第一目标文件及用户输入的加密字符串。对加密字符串进行解析,根据解析结果生成加密密钥。基于加密密钥,将第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中。由于加密字符串是用户输入的,而用户在输入加密字符串时思维随机性较大,且输入的字符种类较多样,从而对应生成的加密密钥破解难度较大。另外,由于用户输入字符中可加入预设类型表情字符,如emoji表情,从而使得对应生成的加密密钥破解难度更大。因此,文件加密的安全性较高。
另外,由于在根据密钥字符串生成加密密钥时,可根据用户输入的字符个数,筛选出一定数量的字符进行拼接得到加密密钥,从而能够减少加密密钥的复杂度,进而后续在根据加密密钥加密文件时,能够降低后续计算量且提高后续计算速度。因此,可提高加密效率。
再次,由于在选取密钥字符串中的字符后,拼接得到的加密密钥已经与用户输入的加密字符串没有什么联系了,从而破解者即时得到加密字符串,也很难破解出加密密钥。基于用户输入字符时的思维随机性、字符多样性、加密密钥的长度及加密密钥本身的字符串顺序,能够进一步地提高后续文件加密的安全性。
最后,通过获取待解密的第二目标文件及用户输入的解密字符串,当第二目标文件为第一目标文件所生成的加密文件时,将解密字符串与加密字符串进行比对。当解密字符串与加密字符串一致时,对解密字符串进行解析,根据对应的解析结果生成解密密钥。根据第二目标文件对应的文件流及解密密钥,生成对应的解密文件流,并将解密文件流写入到保存的解密文件中。由于解密文件需要输入对应的解密字符串,而除了知道加密字符串的用户之外,其他人无法获得相应的解密字符串,且无法通过其它方式解密文件,从而在文件解密这一方面也能提高文件的安全性。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种文件加密方法,其特征在于,所述方法包括:
获取待加密的第一目标文件及用户输入的加密字符串;
对所述加密字符串进行解析,根据解析结果生成加密密钥;
基于所述加密密钥,将所述第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中;
所述加密字符串为字母、文字、数字、中文、外文和预设类型表情字符的任意组合;
其中,所述对所述加密字符串进行解析,根据解析结果生成密钥,包括:
获取所述加密字符串中每个字符对应的预设类型编码;
根据每个字符对应的预设类型编码生成加密密钥;
所述获取所述加密字符串中每个字符对应的预设类型编码,包括:
对于所述加密字符串中的任一字符,判断所述任一字符是否为预设类型表情字符;
当所述任一字符为预设表情类型字符时,获取所述任一字符的预设类型编码;
所述根据每个字符对应的预设类型编码生成加密密钥,包括:
对每个字符对应的预设类型编码进行拼接,得到密钥字符串;
选取所述密钥字符串中的字符;
对选取的字符进行拼接,得到加密密钥。
2.根据权利要求1所述的方法,其特征在于,所述获取待加密的第一目标文件,包括:
根据用户输入的文件选择指令,获取文件地址字符串;
当检测到所述文件地址字符串对应的文件存在时,获取所述文件地址字符串对应的数据类型;
当所述文件地址字符串对应的数据类型为文件时,获取所述文件地址字符串对应的文件,并作为待加密的第一目标文件。
3.根据权利要求1所述的方法,其特征在于,所述判断所述任一字符是否为预设类型表情字符,包括:
获取所述任一字符的编码信息;
当所述编码信息在预设范围内时,确定所述任一字符为预设类型表情字符;
当所述编码信息不在预设范围内时,确定所述任一字符不为预设类型表情字符。
4.根据权利要求1所述的方法,其特征在于,所述选取所述密钥字符串中的字符,包括:
获取所述密钥字符串对应的预设间隔;
按照所述预设间隔,从所述密钥字符串中选取预设数量个字符。
5.根据权利要求1至4中任一权利要求所述的方法,其特征在于,所述预设类型表情字符为emoji表情,所述预设类型编码为unicode编码,所述对所述加密字符串进行解析,根据解析结果生成加密密钥,包括:
对于所述加密字符串中任一字符,当所述任一字符对应的编码信息介于0xd800与0xdbff之间,或者介于0x2100与0x27ff之间且不等于0x263b时,将所述任一字符作为emoji表情,并获取对应的unicode编码,将对应的unicode编码存入到unicode字符串中;
当所述任一字符不为emoji表情时,将所述任一字符转换为unicode编码,将转换的unicode编码存入到所述unicode字符串中;
获取用户输入的预设间隔,按照所述预设间隔,从所述unicode字符串中选取字符;
按照选出的字符顺序对选出的每个字符进行拼接,得到加密密钥。
6.根据权利要求1所述的方法,其特征在于,所述基于所述加密密钥,将所述第一目标文件对应的文件流加入到加密流进行加密之后,还包括:
获取待解密的第二目标文件及用户输入的解密字符串;
当所述第二目标文件为所述第一目标文件所生成的加密文件时,将所述解密字符串与所述加密字符串进行比对;
当所述解密字符串与所述加密字符串一致时,对所述解密字符串进行解析,根据对应的解析结果生成解密密钥;
根据所述第二目标文件对应的文件流及所述解密密钥,生成对应的解密文件流,并将所述解密文件流写入到保存的解密文件中。
7.根据权利要求6所述的方法,其特征在于,所述将所述解密字符串与所述加密字符串进行比对之后,还包括:
当所述解密字符串与所述加密字符串不一致时,提示用户文件解密失败。
8.根据权利要求7所述的方法,其特征在于,所述将所述解密文件流写入到保存的解密文件中之前,还包括:
获取用户选择的解密文件保存地址;
根据所述第二目标文件的占用空间,估计对应的解密文件占用空间;
将所述解密文件保存地址对应的存储空间与所述解密文件占用空间进行比对;
当所述解密文件占用空间大于所述存储空间时,提示用户选择的存储空间不足。
9.一种文件加密装置,其特征在于,所述装置包括:
第一获取模块,用于获取待加密的第一目标文件及用户输入的加密字符串;
第一解析模块,用于对所述加密字符串进行解析,根据解析结果生成加密密钥;
加密模块,用于基于所述加密密钥,将所述第一目标文件对应的文件流加入到加密流进行加密,将加密后的数据写入到保存的加密文件中;
其中,所述加密字符串为字母、文字、数字、中文、外文和预设类型表情字符的任意组合;
所述第一解析模块还用于,
获取所述加密字符串中每个字符对应的预设类型编码;
根据每个字符对应的预设类型编码生成加密密钥;
所述获取所述加密字符串中每个字符对应的预设类型编码,包括:
对于所述加密字符串中的任一字符,判断所述任一字符是否为预设类型表情字符;
当所述任一字符为预设表情类型字符时,获取所述任一字符的预设类型编码;
对每个字符对应的预设类型编码进行拼接,得到密钥字符串;
选取所述密钥字符串中的字符;
对选取的字符进行拼接,得到加密密钥。
CN201611118321.7A 2016-12-07 2016-12-07 文件加密方法及装置 Active CN106788995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611118321.7A CN106788995B (zh) 2016-12-07 2016-12-07 文件加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611118321.7A CN106788995B (zh) 2016-12-07 2016-12-07 文件加密方法及装置

Publications (2)

Publication Number Publication Date
CN106788995A CN106788995A (zh) 2017-05-31
CN106788995B true CN106788995B (zh) 2020-09-04

Family

ID=58881270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611118321.7A Active CN106788995B (zh) 2016-12-07 2016-12-07 文件加密方法及装置

Country Status (1)

Country Link
CN (1) CN106788995B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107819569B (zh) * 2017-12-14 2018-09-11 平安科技(深圳)有限公司 登录信息的加密方法及终端设备
CN110321673A (zh) * 2018-03-28 2019-10-11 北京京东尚科信息技术有限公司 信息加密方法和装置、信息解密方法和装置、安全***
CN109150499B (zh) * 2018-08-29 2021-06-08 深圳市迷你玩科技有限公司 动态加密数据的方法、装置、计算机设备和存储介质
CN110414249B (zh) * 2019-07-24 2022-03-25 Oppo广东移动通信有限公司 信息处理方法、装置、存储介质及电子设备
CN113468544B (zh) * 2020-03-30 2024-04-05 杭州海康威视数字技术股份有限公司 一种应用模型的训练方法及装置
CN111767529A (zh) * 2020-05-18 2020-10-13 广州视源电子科技股份有限公司 文件加密方法、文件解密方法、存储介质和电子设备
CN112217806B (zh) * 2020-09-23 2022-12-27 深圳杰微芯片科技有限公司 数据传输加密方法、服务器和存储介质
CN112968899B (zh) * 2021-02-26 2022-11-08 上海掌门科技有限公司 一种加密通信的方法与设备
CN113259438B (zh) * 2021-05-14 2023-03-31 北京达佳互联信息技术有限公司 模型文件的发送方法和装置及模型文件的接收方法和装置
CN113642033A (zh) * 2021-10-19 2021-11-12 太平金融科技服务(上海)有限公司深圳分公司 加密方法、解密方法、装置、设备及存储介质
CN114340113B (zh) * 2021-12-30 2023-10-13 浙江智马达智能科技有限公司 基于车辆灯光的信息处理方法及装置
CN114567676B (zh) * 2022-03-14 2024-02-02 杭州电子科技大学 一种基于多级加密的私有文件容器入口隐蔽方法
CN117891787B (zh) * 2024-03-15 2024-05-28 武汉磐电科技股份有限公司 电流互感器量值溯源数据处理方法、***以及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5003505B2 (ja) * 2007-04-10 2012-08-15 ソニー株式会社 接続認証システム、端末装置、接続認証サーバ、接続認証方法、及びプログラム
CN101894244B (zh) * 2009-05-20 2012-11-21 鸿富锦精密工业(深圳)有限公司 电子资料加密***及方法
CN102983972B (zh) * 2012-10-18 2015-06-10 吉林大学珠海学院 基于流密码的动态加密解密方法
CN104320377B (zh) * 2014-09-25 2017-07-07 华为技术有限公司 一种流媒体文件的防盗链方法及设备
CN106022147A (zh) * 2016-05-26 2016-10-12 珠海市魅族科技有限公司 文件加密解密的方法和装置

Also Published As

Publication number Publication date
CN106788995A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106788995B (zh) 文件加密方法及装置
CN107801165B (zh) 业务短信推送方法、装置、计算机设备和存储介质
CN106599723B (zh) 一种文件加密方法及装置、文件解密方法及装置
CN112202754B (zh) 一种数据加密方法、装置、电子设备及存储介质
CN103684760A (zh) 通信的加密和解密的方法、装置及***
CN106027228B (zh) 一种网页标识的加解密方法及其加解密***
CN105681039A (zh) 用于生成密钥及对应解密的方法和设备
CN110084599B (zh) 密钥处理方法、装置、设备和存储介质
JP6346942B2 (ja) パスワードへの攻撃を阻害すること
CN105099652A (zh) 数据加密、解密方法和装置
US20170353842A1 (en) Secure communications via a mobile keyboard application of a mobile device
CN103067174A (zh) 一种在移动操作***中完成数字签名的方法和***
CN104243149A (zh) 加、解密方法,装置和服务器
WO2020233047A1 (zh) 页面测试的方法及装置
CN103414727A (zh) 针对input密码输入框的加密保护***及其使用方法
Park et al. Research on Note-Taking Apps with Security Features.
CN112492352A (zh) 一种视频加解密方法、装置、电子设备及存储介质
CN113517982B (zh) 口令的生成方法、口令的执行方法及终端
CN103500294A (zh) 一种文件加解密方法和装置
KR101379711B1 (ko) 전화번호를 이용한 파일 암호화 및 복호화 방법
CN102882675A (zh) 社交网站用的密码加密方法
CN105809494A (zh) ***生成及验证方法及***
KR101267875B1 (ko) 가상 키보드를 이용한 메시지 암·복호화 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
CN104038337A (zh) 一种基于aes128的数据加密方法
US8966254B2 (en) Keyless challenge and response system

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
TR01 Transfer of patent right

Effective date of registration: 20240529

Address after: 100000 616, floor 6, 33 Suzhou street, Haidian District, Beijing

Patentee after: Baosheng (China) Technology Industry Co.,Ltd.

Country or region after: China

Address before: 430000 Wuhan Donghu Development Zone, Wuhan, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China