CN106878013B - 一种文件的加密、解密方法和装置 - Google Patents
一种文件的加密、解密方法和装置 Download PDFInfo
- Publication number
- CN106878013B CN106878013B CN201710180076.0A CN201710180076A CN106878013B CN 106878013 B CN106878013 B CN 106878013B CN 201710180076 A CN201710180076 A CN 201710180076A CN 106878013 B CN106878013 B CN 106878013B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- encrypted
- password
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000005336 cracking Methods 0.000 abstract description 15
- 238000004364 calculation method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种文件加密方法,所述方法包括:生成初始密码;读取所述文件中待加密数据;获取所述文件中已加密数据长度,基于所述初始密码和所述已加密数据长度计算得到加密密码;使用所述加密密码对所述待加密数据进行加密,得到加密数据,通过加密密码对文件中的每个字节进行加密,较于传统的加密方法而言,很大程度的提升了密码被破解的难度,提升了数据安全性。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种文件的加密、解密方法和装置。
背景技术
数据加密又称密码学,它是指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。加密类型主要分为两种:私钥加密技术和公钥加密技术。
随着计算机互联网技术的不断发展,对网络数据安全的要求越来越高,不仅希望数据加密方法能够具有较强的抗破解能力,还希望其能适用于各种不同的文件类型。而传统的数据加密方法已无法满足当前的需求。
发明内容
为了解决背景技术中提到的问题,本发明实施例提供了一种文件的加密、解密方法和装置。所述技术方案如下:
一方面,一种文件的加密方法,包括以下步骤:
生成初始密码;
读取所述文件中待加密数据;
获取所述文件中已加密数据长度,基于所述初始密码和所述已加密数据长度计算得到加密密码;
使用所述加密密码对所述待加密数据进行加密,得到加密数据。
进一步的,所述加密密码是通过将所述初始密码、所述初始密码长度和所述已加密数据长度代入预设函数计算得到。
进一步的,通过所述预设函数计算得到的所述加密密码是分散化的。
进一步的,所述预设函数为散列函数。
进一步的,其特征在于所述加密密码的长度与所述初始密码长度相同。
进一步的,所述生成初始密码的步骤,包括:利用随机函数生成所述初始密码。
进一步的,所述初始密码为数组。
进一步的,在使用所述加密密码对所述待加密数据进行加密时,是对所述待加密数据的每个字节进行加密。
进一步的,所述加密数据是通过所述加密密码与所述待加密数据进行逻辑异或运算得到。
进一步的,所述文件为流媒体。
进一步的,在读取所述文件中待加密数据时,是按顺序分段读取。
进一步的,更包含步骤:保存所述初始密码。
另一方面,本发明还提供一种加密文件的解密方法,包括:
获取初始密码;
读取所述加密文件中待解密数据;
获取所述文件中已解密数据长度,基于所述初始密码和所述已解密数据长度计算得到解密密码;
使用所述解密密码对所述待解密数据进行解密,得到解密数据。
进一步的,所述解密密码是通过将所述初始密码、所述初始密码长度和所述已解密数据长度代入预设函数计算得到。
进一步的,所述预设函数与所述文件加密时使用的函数相同。
进一步的,所述初始密码为所述文件加密时使用的初始密码。
进一步的,在使用所述解密密码对所述待解密数据进行解密时,是对所述待解密数据的每个字节进行解密。
进一步的,所述解密数据是通过所述解密密码与所述待解密数据进行逻辑异或运算得到。
进一步的,所述文件为流媒体。
进一步的,所述读取所述待解密数据的方式与加密所述文件时读取待加密数据的方式相同。
对应于上述文件加密方法,本发明提供一种文件加密装置,其特征在于,包括:
初始密码生成单元,用于生成初始密码,并保存所述初始密码至存储单元中;
加密数据读取单元,用于读取所述文件中待加密数据;
加密密码生成单元,用于获取所述文件中已加密数据长度,并基于所述初始密码和所述已加密数据长度计算得到加密密码;
数据加密单元,使用所述加密密码对所述待加密数据进行加密,得到加密数据,并将所述加密数据保存至所述存储单元。
进一步的,所述加密密码生成单元通过将所述初始密码、所述初始密码长度和所述已加密数据长度代入预设函数计算得到所述加密密码。
进一步的,通过所述预设函数计算得到的所述加密密码是分散化的。
进一步的,所述预设函数为散列函数。
进一步的,其特征在于所述加密密码的长度与所述初始密码长度相同。
进一步的,所述初始密码生成单元利用随机函数生成所述初始密码。
进一步的,所述数据加密单元在使用所述加密密码对所述待加密数据进行加密时,是对所述待加密数据的每个字节进行加密。
进一步的,所述数据加密单元通过将所述加密密码与所述待加密数据进行逻辑异或运算得到所述加密数据。
进一步的,所述文件为流媒体。
进一步的,所述加密数据读取单元在读取所述待加密数据时,是按顺序分段读取。
对应于上述加密文件的解密方法,本发明提供一种加密文件的解密装置,其特征在于,所述解密装置包括:
解密密码生成单元,所述解密密码生成单元从存储单元中获取初始密码,并获取所述文件中已解密数据长度,基于所述初始密码和所述已解密数据长度计算得到解密密码;
解密数据读取单元,用于读取所述加密文件中待解密数据;
数据解密单元,使用所述解密密码对所述待解密数据进行解密,得到解密数据。
进一步的,所述解密密码生成单元通过将所述初始密码、所述初始密码长度和所述已解密数据长度代入预设函数计算得到所述解密密码。
进一步的,所述预设函数与所述文件加密时使用的函数相同。
进一步的,所述初始密码为所述文件加密时使用的初始密码。
进一步的,所述数据解密单元在使用所述解密密码对所述待解密数据进行解密时,是对所述待解密数据的每个字节进行解密。
进一步的,所述数据解密单元通过所述解密密码与所述待解密数据进行逻辑异或运算得到所述解密数据。
进一步的,所述文件为流媒体。
进一步的,所述解密读取单元读取所述待解密数据的方式与加密所述文件时读取待加密数据的方式相同。
使用本发明提供的加密技术,引入了随机函数、预设函数及数据读取方式来生成加密密码在很大程度上提升了被恶意破解的难度,本发明提供的加密技术是针对文件中的每个字节进行加密,可适用于各种类型的文件,尤其是流媒体文件,在很大程度上对传统数据加密技术进行了改进,更好的满足了当前技术发展的需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种文件加密的方法流程图;
图2是本发明实施例二提供的一种加密文件的解密方法流程图;
图3是本发明实施例三提供的一种文件加密装置的结构示意图;
图4是本发明实施例四提供的一种加密文件的解密装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
第一实施例
参见图1所示,本发明第一实施例提供一种文件的加密方法,包括步骤101~步骤104,详述如下。
步骤101:生成初始密码。
初始密码用于生成加密密码,本发明的实施例中,初始密码可以是单个数字,也可以是数组,可以是随机的,也可以是固定的,在一些较佳实施例中,为了提高安全性,初始密码可借助随机函数生成,更进一步的,为了提升密码破解难度,初始密码为借助随机函数生成的包含多个元素的数组。
更进一步的,为了后续的解密操作,需将初始密码进行保存。
步骤102:读取文件中待加密数据。
本发明的实施例中,读取文件中待加密数据时,可以是一次性读取所有的待加密数据,也可以按顺序分段读取,所谓按顺序分段读取是指设定一个固定数据长度单位,根据文件读取的顺序按照该单位长度来读取待加密数据,故当使用分段读取的方式来读取待加密数据时,可能需要读取多次,每次读取后,对该分段进行加密处理后,再读取下一分段数据,直至所以待加密数据加密完毕。
步骤103:获取文件中已加密数据的长度,基于所述初始密码和所述已加密数据长度计算得到加密密码。
文件中已加密数据的长度是指文件在当前已经完成加密的数据的长度。
在计算加密密码时,通过将初始密码、初始密码长度和加密数据的长度代入预设函数计算得到。本发明的实施例中并不对预设函数的类型进行限制,在本发明的一些较佳实施例中,预设函数可以为散列函数,由于分散函数计算出的结果不具有规律性,通过预设函数计算得到的加密密码是分散化的,无规律可寻,从而更进一步的增加了密码被破解的难度。
在本发明的较佳实施例中,为了增加破解难度,初始密码可设为包含多个元素的随机数组,通过预设函数计算得到的结果与初始密码长度相同的加密密码数组,如此一来,初始密码的长度较长,数据范围较大,计算得到的加密密码数组的数据范围也随之扩大。该加密密码数组中的每个字节就是用于对文件中各个字节进行加密的加密密码,该些加密密码属于较大的数据范围,之间具有分散化的特点,且计算得出的每组加密密码之间也无规律可寻,故在很大程度上增加了密码被破解的难度,提高了数据安全性。
步骤104:使用所述加密密码对待加密数据进行加密,得到加密数据。
使用加密密码对文件中待加密数据进行加密时,是对将加密密码与对应的字节进行逻辑异或运算得到该字节数据的加密数据。
本发明的实施例中,在对文件进行加密时,是按文件读取顺序以字节为单位进行加密操作的,也就是说,文件中的每个组成字节都有对应的加密密码,每个字节都将与其对应的加密密码进行逻辑运算,以得到相应的密文,故在文件加密的过程中,是按照文件读取顺序一个字节一个字节的进行加密操作。
以下对上述加密密码的计算方法和数据加密方法的具体程序逻辑实现进行详细说明。
步骤一:从待加密文件in中读出一段长度为data_len的数据data,记录当前已经加密完成的数据长度offset,文件in的长度为in_len。如果读到的数据长度为0既文件结尾则跳出加密流程,关闭文件in和文件out,并将in文件删除,文件out重新命名成in。值得注意的是,本实施例中,文件加密是否完成是根据读取的待加密数据长度来判断,在本发明的其他实施例中,还可以通过其他方式来进行判断,如判断已加密数据的长度是否等于文件长度等,本发明并不以此为限。
步骤二:计算本次加密密码组的偏移量n=offset/m、加密密码偏移量key_i=offset%m,其中本次加密密码组的偏移量是指本次加密时所使用的加密密码组的序号,加密密码偏移量是指本次加密使用的加密密码在加密密码组中的标识;初始化data偏移data_i=0;通过预设函数计算加密密码组new_Kn,计算公式是new_Kn=xor_key(key,offset/m),其中key为通过随机函数计算得到的初始密码,m为初始密码的长度,xor_key是预设函数,为了保证xor_key的计算结果是分散化的,可以取crc64(循环冗余校验)或者Hash(散列函数)函数等来实现,本实施例中使用的是crc64(循环冗余校验)。
步骤三:将数据data中的字节数据data[data_i]和加密密码组new_Kn中的加密密码new_Kn[key_i]做加密运算,运算规则是data[data_i]^new_Kn[key_i],然后自加data_i和key_i即data_i++和key_i++。
步骤四:如果data_i==data_len,表示本次读取出的数据data已全部完成加密,则将数据data对应的密文写入文件out,如果offset+=in_len,重新执行步骤一。
步骤五:如果key_i==m,重新计算new_Kn,计算过程是new_Kn=xor_key(key,(offsert+data_i)/m),n=(offsert+data_i)/m,设置key_i=0,并重新执行步骤三。
综上所述,本发明实施例所提供的文件加密方法,通过初始密码、已加密数据的长度计算得到加密密码,再通过加密密码对文件进行加密,在加密时,文件中的每个字节数据都有对应的加密密码。故若要对加密文件进行破解,需要获取到初始密码、计算规则以及加密时已加密数据长度的获取方式,才能正确得出解密密码。
更进一步的,本发明的实施所提供的文件加密方法通过随机函数生成初始密码,并通过将初始密码、初始密码长度和已加密的数据长度代入散列函数计算得到加密密码,使得加密密码无规律可循,从而使得加密后的加密数据无规律可循,较于传统的加密方法而言,很大程度的提升了密码被破解的难度,提升了数据安全性。
更进一步的,本发明实施例所提供的文件加密方法中,初始密码可为数组,通过预设函数计算得到的结果是与初始密码长度相同的加密密码数组,由于数组的数据范围较单个字符大,故加密密码的取值范围在很大程度上得到扩张,更进一步的提升了密码被破解的难度。
更进一步的,本发明实施例所提供的文件加密方法中,读取待加密数据时采用按顺序分段读取的方式,每次读取待加密数据时需代入已加密数据的长度进行加密密码的计算,故,采取不同的分段长度读取数据时,计算得出的加密密码也不相同,从而更进一步的增加了密码被破解的难度。
值得注意的是,本发明实施例所提供的加密方法是针对文件中的每个字节进行加密,解密时也是针对单个字节进行的,从而可以在文件的任意节点进行解密,从而适用于对流媒体的加密,满足用户在客户端播放视频音频文件时,拖动播放的需求。
第二实施例
参见图2所示,本发明第二实施例提供一种加密文件的解密方法,包括步骤201~步骤204,详述如下。
步骤201:获取初始密码。
具体而言,解密时需使用加密时相同的初始密码,本步骤中,可通过加密时初始密码的保存路径中读取得到初始密码,可以是通过其他方式获取初始密码,其使用的技术手段为本领域技术人员所习知,故不再赘述。
步骤202:读取加密文件中待解密数据。
由于读取待解密数据的方式会影响到解密密码的生成,所以本实施例中,读取所述待解密数据的方式与加密所述文件时读取待加密数据的方式相同。
步骤203:获取所述已解密数据长度,基于初始密码和已解密数据长度计算得到解密密码。
文件中解密数据的长度是指文件在当前已经完成解密的数据的长度。
在计算解密密码时,通过将初始密码、初始密码长度和解密数据的长度代入预设函数计算得到,其中所使用的预设函数与加密时所使用的函数相同。
步骤204:使用所述解密密码对所述待解密数据进行解密,得到解密数据。
使用解密密码对文件中待解密数据进行解密时,是对将解密密码与对应的字节进行逻辑异或运算得到该字节数据的解密数据。
在本实施例的文件解密方法中,为了能对加密文件进行顺利解密,其操作方法与加密方法相对应,使用的初始密码、计算规则和文件读取方式应都相同。其中,解密密码的计算逻辑与上述实施例中的程序逻辑相同,故不再赘述。
同样的,本发明实施例中的加密文件解密方法,也是针对每个字节进行解密操作,故可适用于流媒体的解密。
第三实施例
参见图3所示,本发明第三实施例提供一种文件加密装置,与图1所示的文件加密方法相对应,能实现第一实施例中的文件加密方法的细节,并达到相同的效果。所述文件加密装置10包括初始密码生成单元11,存储单元12,加密数据读取单元13,加密密码生成单元14,数据加密单元15,其中初始密码生成单元11连接于存储单元12,加密密码生成单元14连接于和数据加密单元15,数据加密单元15连接于存储单元12和加密数据读取单元13。
具体而言,初始密码生成单元11,用于生成初始密码,并保存初始密码至存储单元12中。
本发明的实施例中,初始密码可以是单个数字,也可以是数组,可以是随机的,也可以是固定的,在一些较佳实施例中,为了提高安全性,初始密码可借助随机函数生成,更进一步的,为了提升密码破解难度,初始密码为借助随机函数生成的包含多个元素的数组。
将初始密码进行保存,是一方面可提供给后续加密过程中使用,另一方面是为了在解密时使用。
加密数据读取单元13,用于读取文件中待加密数据,并提供待加密数据给数据加密单元15进行加密操作。
本发明的实施例中,读取文件中待加密数据时,可以是一次性读取所有的待加密数据,也可以按顺序分段读取,所谓按顺序分段读取是指设定一个固定数据长度单位,根据文件读取的顺序按照该单位长度来读取待加密数据,故当使用分段读取的方式来读取待加密数据时,可能需要读取多次,每次读取后,对该分段进行加密处理后,再读取下一分段数据,直至所以待加密数据加密完毕。
加密密码生成单元14,可获取文件中已加密数据长度,并基于初始密码和已加密数据长度计算得到加密密码,其中,加密密码生成单元14可以从初始密码生成单元11中获得初始密码,也可以从存储单元12中读取初始密码,本发明并不做限制。
文件中已加密数据的长度是指文件在当前已经完成加密的数据的长度。
在计算加密密码时,通过将初始密码、初始密码长度和加密数据的长度代入预设函数计算得到。本发明的实施例中并不对预设函数的类型进行限制,在本发明的一些较佳实施例中,预设函数可以为散列函数,由于分散函数计算出的结果不具有规律性,通过预设函数计算得到的加密密码是分散化的,无规律可寻,从而更进一步的增加了密码被破解的难度。
在本发明的较佳实施例中,为了增加破解难度,初始密码可设为包含多个元素的随机数组,通过预设函数计算得到的结果与初始密码长度相同的加密密码数组,如此一来,初始密码的长度较长,数据范围较大,计算得到的加密密码数组的数据范围也随之扩大。该加密密码数组中的每个字节就是用于对文件中各个字节进行加密的加密密码,该些加密密码属于较大的数据范围,之间具有分散化的特点,且计算得出的每组加密密码之间也无规律可寻,故在很大程度上增加了密码被破解的难度,提高了数据安全性。
数据加密单元15,使用的加密密码对待加密数据进行加密,得到加密数据,并将加密数据保存至所述存储单元12,其中,加密密码是从加密密码生成单元14中获得,加密数据从加密数据读取单元13中获得。
使用加密密码对文件中待加密数据进行加密时,是对将加密密码与对应的字节进行逻辑异或运算得到该字节数据的加密数据。
本发明的实施例中,在对文件进行加密时,是按文件读取顺序以字节为单位进行加密操作的,也就是说,文件中的每个组成字节都有对应的加密密码,每个字节都将与其对应的加密密码进行逻辑运算,以得到相应的密文,故在文件加密的过程中,是按照文件读取顺序一个字节一个字节的进行加密操作。
本实施例中所使用的加密密码的计算方式和加密方法的实现逻辑与实施例一中的相同,故不再赘述。
由此可见,通过本发明实施例所提供的文件加密装置对文件进行加密时,通过初始密码、已加密数据的长度计算得到加密密码,再通过加密密码对文件进行加密,在加密时,文件中的每个字节数据都有对应的加密密码。故若要对加密文件进行破解,需要获取到初始密码、计算规则以及加密时已加密数据长度的获取方式,才能正确得出解密密码。
更进一步的,本发明的实施所提供的文件加密装置对文件进行加密时,通过随机函数生成初始密码,并通过将初始密码、初始密码长度和已加密的数据长度代入散列函数计算得到加密密码,使得加密密码无规律可循,从而使得加密后的加密数据无规律可循,较于传统的加密方法而言,很大程度的提升了密码被破解的难度,提升了数据安全性。
更进一步的,本发明实施例所提供的文件加密装置对文件进行加密时,初始密码可为数组,通过预设函数计算得到的结果是与初始密码长度相同的加密密码数组,由于数组的数据范围较单个字符大,故加密密码的取值范围在很大程度上得到扩张,更进一步的提升了密码被破解的难度。
更进一步的,本发明实施例所提供的文件加密装置对文件进行加密时,读取待加密数据时采用按顺序分段读取的方式,每次读取待加密数据时需代入已加密数据的长度进行加密密码的计算,故,采取不同的分段长度读取数据时,计算得出的加密密码也不相同,从而更进一步的增加了密码被破解的难度。
值得注意的是,本发明实施例所提供的加密装置对文件进行加密时是针对文件中的每个字节进行加密,解密时也是针对单个字节进行的,从而可以在文件的任意节点进行解密,从而适用于对流媒体的加密,满足用户在客户端播放视频音频文件时,拖动播放的需求。
第四实施例
参见图4所示,本发明第四实施例提供一种文件解密装置,与图2所示的文件解密方法相对应,能实现第一实施例中的文件解密方法的细节,并达到相同的效果。所述加密文件解密装置20包括解密密码生成单元21、存储单元22、解密数据读取单元23和数据解密单元24,其中,解密密码生成单元21连接于存储单元22和数据解密单元24,数据解密单元24分别连接于其他三个单元。
具体而言,解密密码生成单元21从存储单元22中获取文件加密时使用的初始密码,并获取文件中已解密数据长度,基于初始密码和已解密数据长度计算得到解密密码。
值得注意的是,本发明的其他实施例中,可通过加密时初始密码的保存路径中读取得到初始密码,可以是通过其他方式获取初始密码,其使用的技术手段为本领域技术人员所习知,故不再赘述。文件中解密数据的长度是指文件在当前已经完成解密的数据的长度。
在计算解密密码时,通过将初始密码、初始密码长度和解密数据的长度代入预设函数计算得到,其中所使用的预设函数与加密时所使用的函数相同。
解密数据读取单元23,读取加密文件中待解密数据,如前文所述,读取待解密数据的方式会影响到解密密码的生成,所以本实施例中,读取待解密数据的方式与加密文件时读取待加密数据的方式相同。
数据解密单元24,使用所述解密密码对所述待解密数据进行解密,得到解密数据。
使用解密密码对文件中待解密数据进行解密时,是对将解密密码与对应的字节进行逻辑异或运算得到该字节数据的解密数据。
在本实施例的加密文件解密装置中,为了能对加密文件进行顺利解密,其操作方法与加密方法相对应,使用的初始密码、计算规则和文件读取方式应都相同。其中,解密密码的计算逻辑与上述实施例中的程序逻辑相同,故不再赘述。
同样的,本发明实施例中的加密文件解密装置,也是针对每个字节进行解密操作,故可适用于流媒体的解密。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (30)
1.一种文件加密的方法,其特征在于,所述方法包括:
生成初始密码;
读取所述文件中待加密数据;
获取所述文件中已加密数据长度,基于所述已加密数据长度和初始密码长度计算得到加密密码组的偏移量和加密密码偏移量;
基于所述初始密码和所述加密密码组的偏移量计算得到加密密码组;
基于所述加密密码偏移量从所述加密密码组中确定所述待加密数据中各个字节对应的加密密码;
使用所述各个字节对应的加密密码对所述待加密数据的相应字节进行加密,得到加密数据。
2.根据权利要求1所述的文件加密方法,其特征在于,所述加密密码是通过将所述初始密码、所述初始密码长度和所述已加密数据长度代入预设函数计算得到。
3.根据权利要求2所述的文件加密方法,其特征在于,通过所述预设函数计算得到的所述加密密码组是分散化的。
4.根据权利要求2所述的文件加密方法,其特征在于,所述预设函数为散列函数。
5.根据权利要求2所述的文件加密方法,其特征在于所述加密密码组的长度与所述初始密码长度相同。
6.根据权利要求1所述的文件加密方法,其特征在于,所述生成初始密码的步骤,包括:利用随机函数生成所述初始密码。
7.根据权利要求1所述的文件加密方法,其特征在于,所述初始密码为数组。
8.根据权利要求1所述的文件加密方法,其特征在于,所述加密数据是通过所述加密密码与所述待加密数据中的相应字节进行逻辑异或运算得到。
9.根据权利要求1所述的文件加密方法,其特征在于,所述文件为流媒体。
10.根据权利要求1所述的文件加密方法,其特征在于,在读取所述文件中待加密数据时,是按顺序分段读取。
11.根据权利要求1所述的文件密码方法,其特征在于,更包含步骤:保存所述初始密码。
12.一种加密文件的解密方法,其特征在于,所述方法包括:
获取初始密码;
读取所述加密文件中待解密数据;
获取所述文件中已解密数据长度,基于所述初始密码、初始密码长度和所述已解密数据长度代入预设函数计算得到解密密码;所述预设函数与所述文件加密时使用的函数相同;
使用所述解密密码对所述待解密数据的相应字节进行解密,得到解密数据。
13.根据权利要求12所述的加密文件的解密方法,其特征在于,所述初始密码为所述文件加密时使用的初始密码。
14.根据权利要求12所述的加密文件的解密方法,其特征在于,所述解密数据是通过所述解密密码与所述待解密数据中的相应字节进行逻辑异或运算得到。
15.根据权利要求12所述的加密文件的解密方法,其特征在于,所述文件为流媒体。
16.根据权利要求12所述的加密文件的解密方法,其特征在于,所述读取所述待解密数据的方式与加密所述文件时读取待加密数据的方式相同。
17.一种文件加密装置,其特征在于,包括:
初始密码生成单元,用于生成初始密码,并保存所述初始密码至存储单元中;
加密数据读取单元,用于读取所述文件中待加密数据;
加密密码生成单元,用于
获取所述文件中已加密数据长度,并基于所述已加密数据长度和初始密码长度计算得到加密密码组的偏移量和加密密码偏移量;
基于所述初始密码和所述加密密码组的偏移量计算得到加密密码组;
基于所述加密密码偏移量从所述加密密码组中确定所述待加密数据中各个字节对应的加密密码;
数据加密单元,使用所述各个字节对应的加密密码对所述待加密数据的相应字节进行加密,得到加密数据,并将所述加密数据保存至所述存储单元。
18.根据权利要求17所述的文件加密装置,其特征在于,所述加密密码生成单元通过将所述初始密码、所述初始密码长度和所述已加密数据长度代入预设函数计算得到所述加密密码。
19.根据权利要求18所述的文件加密装置,其特征在于,通过所述预设函数计算得到的所述加密密码组是分散化的。
20.根据权利要求18所述的文件加密装置,其特征在于,所述预设函数为散列函数。
21.根据权利要求18所述的文件加密装置,其特征在于所述加密密码组的长度与所述初始密码长度相同。
22.根据权利要求17所述的文件加密装置,其特征在于,所述初始密码生成单元利用随机函数生成所述初始密码。
23.根据权利要求17所述的文件加密装置,其特征在于,所述数据加密单元通过将所述加密密码与所述待加密数据中的相应字节进行逻辑异或运算得到所述加密数据。
24.根据权利要求17所述的文件加密装置,其特征在于,所述文件为流媒体。
25.根据权利要求17所述的文件加密装置,其特征在于,所述加密数据读取单元在读取所述待加密数据时,是按顺序分段读取。
26.一种加密文件的解密装置,其特征在于,所述解密装置包括:
解密密码生成单元,所述解密密码生成单元从存储单元中获取初始密码,并获取所述文件中已解密数据长度,基于所述初始密码、初始密码长度和所述已解密数据长度代入预设函数计算得到解密密码;所述预设函数与所述文件加密时使用的函数相同;
解密数据读取单元,用于读取所述加密文件中待解密数据;
数据解密单元,使用所述解密密码对所述待解密数据的相应字节进行解密,得到解密数据。
27.根据权利要求26所述的加密文件的解密装置,其特征在于,所述初始密码为所述文件加密时使用的初始密码。
28.根据权利要求26所述的加密文件的解密装置,其特征在于,所述数据解密单元通过所述解密密码与所述待解密数据进行逻辑异或运算得到所述解密数据。
29.根据权利要求26所述的加密文件的解密装置,其特征在于,所述文件为流媒体。
30.根据权利要求26所述的加密文件的解密装置,其特征在于,所述解密数据 读取单元读取所述待解密数据的方式与加密所述文件时读取待加密数据的方式相同。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710180076.0A CN106878013B (zh) | 2017-03-20 | 2017-03-20 | 一种文件的加密、解密方法和装置 |
EP17901375.0A EP3499791A4 (en) | 2017-03-20 | 2017-04-12 | METHOD AND DEVICE FOR ENCRYPTING AND DECRYPTING FILE |
US16/319,687 US20210288789A1 (en) | 2017-03-20 | 2017-04-12 | Method and device for file encryption and decryption |
PCT/CN2017/080198 WO2018170963A1 (zh) | 2017-03-20 | 2017-04-12 | 一种文件的加密、解密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710180076.0A CN106878013B (zh) | 2017-03-20 | 2017-03-20 | 一种文件的加密、解密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106878013A CN106878013A (zh) | 2017-06-20 |
CN106878013B true CN106878013B (zh) | 2021-02-02 |
Family
ID=59172866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710180076.0A Expired - Fee Related CN106878013B (zh) | 2017-03-20 | 2017-03-20 | 一种文件的加密、解密方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210288789A1 (zh) |
EP (1) | EP3499791A4 (zh) |
CN (1) | CN106878013B (zh) |
WO (1) | WO2018170963A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108040191B (zh) * | 2017-12-20 | 2019-07-23 | 北京邮电大学 | 基于哈希链压缩感知的图像加密和解密方法 |
CN109150512A (zh) * | 2018-08-22 | 2019-01-04 | 网宿科技股份有限公司 | 一种数据加密、解密方法、系统及数据加密、解密装置 |
CN110035319B (zh) * | 2019-04-02 | 2020-05-15 | 北京文香信息技术有限公司 | 一种音视频数据的加密、解密方法、装置及播放设备 |
CN111131158A (zh) * | 2019-11-21 | 2020-05-08 | 珠海剑心互动娱乐有限公司 | 单字节对称加密解密方法、装置及可读介质 |
CN111368345A (zh) * | 2020-03-09 | 2020-07-03 | 浙江众邦机电科技有限公司 | 加密程序的解密方法、装置、设备和计算机可读存储介质 |
CN112364358A (zh) * | 2020-10-30 | 2021-02-12 | 北京天润融通科技股份有限公司 | 语音加密方法与装置、语音解密方法与装置 |
CN114285562B (zh) * | 2021-12-27 | 2023-05-09 | 元心信息科技集团有限公司 | 一种数据加密方法和装置 |
CN115277266B (zh) * | 2022-09-29 | 2023-01-31 | 南京银铂科技有限公司 | 一种实验室数据加密方法、装置、终端及介质 |
CN116015620B (zh) * | 2022-11-11 | 2023-07-28 | 自然资源部国土卫星遥感应用中心 | 一种卫星影像数据加密和解密方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6819766B1 (en) * | 1999-03-30 | 2004-11-16 | International Business Machines Corporation | Method and system for managing keys for encrypted data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340279B (zh) * | 2008-07-09 | 2011-02-02 | 深圳市金蝶友商电子商务服务有限公司 | 数据加密及解密方法、系统及设备 |
CN102402670A (zh) * | 2011-08-03 | 2012-04-04 | 广东欧珀移动通信有限公司 | 一种文件加解密方法 |
CN102594549B (zh) * | 2012-03-22 | 2015-02-11 | 山东泰信电子股份有限公司 | 一种数据多级加密、解密方法 |
CN103957099A (zh) * | 2014-05-16 | 2014-07-30 | 武汉大学 | 一种与水印结合的媒体加密和解密的方法 |
CN106453318A (zh) * | 2016-10-14 | 2017-02-22 | 北京握奇智能科技有限公司 | 一种基于安全模块的数据传输系统及方法 |
-
2017
- 2017-03-20 CN CN201710180076.0A patent/CN106878013B/zh not_active Expired - Fee Related
- 2017-04-12 US US16/319,687 patent/US20210288789A1/en not_active Abandoned
- 2017-04-12 EP EP17901375.0A patent/EP3499791A4/en not_active Ceased
- 2017-04-12 WO PCT/CN2017/080198 patent/WO2018170963A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6819766B1 (en) * | 1999-03-30 | 2004-11-16 | International Business Machines Corporation | Method and system for managing keys for encrypted data |
Also Published As
Publication number | Publication date |
---|---|
EP3499791A4 (en) | 2019-09-18 |
CN106878013A (zh) | 2017-06-20 |
EP3499791A1 (en) | 2019-06-19 |
WO2018170963A1 (zh) | 2018-09-27 |
US20210288789A1 (en) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106878013B (zh) | 一种文件的加密、解密方法和装置 | |
US9537657B1 (en) | Multipart authenticated encryption | |
US9237014B2 (en) | Partial CipherText updates using variable-length segments delineated by pattern matching and encrypted by fixed-length blocks | |
US11184164B2 (en) | Secure crypto system attributes | |
KR101324825B1 (ko) | 메시지 인증 코드 사전 연산 방법 및 시스템 | |
JP5167348B2 (ja) | ソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置 | |
US10484170B2 (en) | Custom encryption function for communications between a client device and a server device | |
JP5875441B2 (ja) | データを暗号化する装置及び方法 | |
JP3871996B2 (ja) | データ分割管理方法及びプログラム | |
US11212082B2 (en) | Ciphertext based quorum cryptosystem | |
CN110351297B (zh) | 一种应用于区块链的验证方法及装置 | |
CN111222148A (zh) | 密钥生成方法、加密方法、解密方法及装置 | |
JP2006311383A (ja) | データ管理方法、データ管理システムおよびデータ管理装置 | |
US20200396054A1 (en) | Secure Memory Read | |
WO2019225735A1 (ja) | データ処理装置、方法及びコンピュータプログラム | |
JP7024666B2 (ja) | Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム | |
CN112818404B (zh) | 数据访问权限的更新方法、装置、设备及可读存储介质 | |
JP5511803B2 (ja) | 対称暗号を実行するための技法 | |
CN113326518A (zh) | 一种数据处理方法及装置 | |
CN112134693B (zh) | 密钥加密存储方法、获取方法及其装置 | |
CN107294713B (zh) | 一种加密认证方法 | |
CN110401533B (zh) | 一种私钥加密方法及装置 | |
CN111130788B (zh) | 数据处理方法和系统、数据读取方法和iSCSI服务器 | |
Charru et al. | Improved Cryptography Algorithm to Enhanced Data Security | |
CN114676452A (zh) | 一种数据安全存储方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210202 |