CN116894273B - 基于异或和求余的文件加密方法、解密方法、设备及介质 - Google Patents

基于异或和求余的文件加密方法、解密方法、设备及介质 Download PDF

Info

Publication number
CN116894273B
CN116894273B CN202311159556.0A CN202311159556A CN116894273B CN 116894273 B CN116894273 B CN 116894273B CN 202311159556 A CN202311159556 A CN 202311159556A CN 116894273 B CN116894273 B CN 116894273B
Authority
CN
China
Prior art keywords
byte
encrypted
buffer
file
bytes
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
CN202311159556.0A
Other languages
English (en)
Other versions
CN116894273A (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.)
SICHUAN CONSTRUCTION NETWORK CO Ltd
Original Assignee
SICHUAN CONSTRUCTION NETWORK 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 SICHUAN CONSTRUCTION NETWORK CO Ltd filed Critical SICHUAN CONSTRUCTION NETWORK CO Ltd
Priority to CN202311159556.0A priority Critical patent/CN116894273B/zh
Publication of CN116894273A publication Critical patent/CN116894273A/zh
Application granted granted Critical
Publication of CN116894273B publication Critical patent/CN116894273B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting 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
    • 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

Landscapes

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

Abstract

本发明涉及文件加密解密技术领域,公开了一种基于异或和求余的文件加密方法、解密方法、设备及介质,包括:S1、使用随机字符串设计一个密钥库;S2、定义一个第一缓冲字节数组;S3、从需要加密的原始文件中按字节排列的顺序读取长度为M的待读取的字节到所述第一缓冲字节数组中;S4、将所述第一缓冲字节数组中的每个字节结合原加密文件流的当前位置P以及字节最大值Z进行求余运算后得到的余数作为索引在所述密钥库A中找到对应的用于加密的密钥;然后进行异或运算得到加密字节;S5、依次写入;S6、判断是否还有待读取的字节,若是,则跳转至S3,否则,跳转至S7;S7、结束加密过程。本发明能够快速的对数据量大的文件进行加密解密。

Description

基于异或和求余的文件加密方法、解密方法、设备及介质
技术领域
本发明涉及文件加密解密技术领域,具体涉及一种基于异或和求余的文件加密方法、解密方法、设备及介质。
背景技术
在信息技术飞速发展的现代社会,信息安全占有重要地位,而密码技术是信息安全的保障及核心。
密码作为保密信息手段,根据对明文处理方式不同,密码编码***有分组密码和流密码两类,分组加密一次处理一组元素的输入,分组密码体制属于传统加密体制,目前已有大量分组密码,如DES的各种变形、IDEA算法、SAFER系列算法、RC系列算法等。
现有的加密、解密方法都比较复杂,对于需要加密的文件,如果文件内容比较多,会使得该文件在加密、解密的过程中需要更多的时间,效率会非常低,因此,在保证保密性的前提下,亟需设计一种轻量级的加密、解密方法,来应对数据量大的文件。
发明内容
本发明提供一种基于异或和求余的文件加密方法、解密方法、设备及介质,以解决上述问题。
本发明通过下述技术方案实现:
一种基于异或和求余的文件加密方法,包括:
S1、使用随机字符串设计一个密钥库A,,a为密钥库中的密钥,n为密钥的数量;
S2、定义一个第一缓冲字节数组buffer1,所述第一缓冲字节数组buffer1的字节长度为M,所述第一缓冲字节数组buffer1的字节长度根据外部硬件配置而定;
S3、清空所述第一缓冲字节数组buffer1中的字节,从需要加密的原始文件中按字节排列的顺序读取长度为M的待读取的字节到所述第一缓冲字节数组buffer1中,当所述原始文件中的字节被读取到所述第一缓冲字节数组buffer1中后,剩下的未被读取的字节成为待读取的字节;
S4、将所述第一缓冲字节数组buffer1中的每个字节结合原加密文件流的当前位置P以及字节最大值Z进行求余运算后得到的余数作为索引在所述密钥库A中找到对应的用于加密的密钥;然后将得到的每一个用于加密的所述密钥和本次读取到所述第一缓冲字节数组buffer1中的字节对应依次进行异或运算得到加密字节;
S5、将得到的所述加密字节从原加密文件流的最后字节的后一位按照加密字节排列的顺序依次写入,形成新的原加密文件流;
S6、判断所述原始文件中是否还有待读取的字节,若是,则跳转至S3,否则,跳转至S7;
S7、新的原加密文件流即为原始文件对应的加密文件,结束加密过程。
作为优化,S1的具体过程为:
S1.1、使用随机字符串定义一个字符串库;
S1.2、对所述字符串库进行编码,得到密钥库A。
作为优化,所述字符串库的字节长度不小于所述字节最大值Z,且所述字符串库中的字符包括数字、字母、汉字的其中一种或者多种。
作为优化,S1.2中,对所述字符串库进行编码可以通过对所述字符串库进行utf-8编码或者Unicode编码的方式对所述字符串库进行加密。
作为优化,S4的具体步骤为:
S4.1、获取原加密文件流的当前位置P;
S4.2、循环所述第一缓冲字节数组buffer1中的字节,对所述第一缓冲字节数组buffer1中的每个字节分别按(P+字节所在位置索引)除以字节最大值Z求余得到所述第一缓冲字节数组buffer1中的每个字节的余数,即:
i为所述第一缓冲字节数组buffer1中第i个字节,表示所述第一缓冲字节数组buffer1中第i个字节对应的余数;
S4.3、将得到的若干所述余数分别作为索引在所述密钥库A中找到对应的用于加密的密钥,所述余数的数值即为密钥的顺序编号;
S4.4、对得到的用于加密的密钥和本次读取到所述第一缓冲字节数组buffer1中的字节对应依次进行异或运算得到加密字节,即第i个加密字节=(第i个第一缓冲字节数组buffer1中的字节)^/>
本发明还公开了一种基于异或和求余的文件解密方法,对前述的一种基于异或和求余的文件加密方法进行加密后的加密文件进行解密,包括:
T1、定义一个第二缓冲字节数组buffer2,所述第二缓冲字节数组buffer2的字节长度为N,所述第二缓冲字节数组buffer2的字节长度根据外部硬件配置而定;
T2、清空所述第二缓冲字节数组buffer2中的字节,从需要解密的加密文件中按加密字节排列的顺序读取长度为N的待读取的加密字节到所述第二缓冲字节数组buffer2中,当所述加密文件中的加密字节被读取到所述第二缓冲字节数组buffer2中后,剩下的未被读取的加密字节成为待读取的加密字节;
T3、将所述第二缓冲字节数组buffer2中的每个加密字节结合原解密文件流的当前位置K以及字节最大值Z进行求余运算后得到的余数作为索引在密钥库A中找到对应的用于解密的密钥;然后将得到的每一个用于解密的所述密钥和本次读取到所述第二缓冲字节数组buffer2中的加密字节依次进行异或运算得到解密字节;
T4、将得到的所述解密字节从原解密文件流的最后字节的后一位按照解密字节排列的顺序依次写入,形成新的原解密文件流;
T5、判断所述加密文件中是否还有待读取的加密字节,若是,则跳转至T2,否则,跳转至T6;
T6、新的原解密文件流即为原始文件,结束解密过程。
作为优化,T3的具体步骤为:
T3.1、获取原解密文件流的当前位置K;
T3.2、循环所述二缓冲字节数组buffer2中的加密字节,对所述二缓冲字节数组buffer2中的每个加密字节分别按(K+加密字节所在位置索引)除以字节最大值Z求余得到所述二缓冲字节数组buffer2中的每个加密字节的余数,即:
j为所述第二缓冲字节数组buffer2中第j个加密字节,表示所述第二缓冲字节数组buffer2中第j个加密字节对应的余数;
T3.3、将得到的若干加密字节的余数分别作为索引在所述密钥库A中找到对应的用于解密的密钥,该加密字节的余数的数值即为密钥的顺序编号;
T3.4、对得到的用于解密的密钥和本次读取到所述第二缓冲字节数组buffer2中的字节对应依次进行异或运算得到解密字节,即第j个解密字节=(第j个第二缓冲字节数组buffer2中的加密字节)^/>
作为优化,T3中使用的密钥库A与前述的一种基于异或和求余的文件加密方法中设计出来的密钥库A为同一个密钥库。
本发明还公开了一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述的方法。
本发明还公开了一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明的一种基于异或和求余的文件加密方法、解密方法、设备及介质,实现方法简单,在保证保密性的前提下能够快速的对数据量大的文件进行加密解密。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为本发明所述的一种基于异或和求余的文件加密方法的流程图;
图2为本发明所述的一种基于异或和求余的文件解密方法的流程图。
实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1的一种基于异或和求余的文件加密方法,如图1所示,包括:
S1、使用随机字符串设计一个密钥库A,,a为密钥库中的密钥,n为密钥的数量;
具体过程为:
S1.1、使用随机字符串定义一个字符串库;
S1.2、对所述字符串库进行加密,得到密钥库A,如采用utf-8、Unicode等方式对字符串库中的随机字符串库进行加密得到密钥库,作用是为了将密钥库中的字符串转换成byte字节。字符串库的字节长度不小于字节最大值Z,例如,字节最大值Z为255,那么,字符串库的字节长度就不能小于255,且所述字符串库中的字符包括数字、字母、汉字的其中一种或者多种。
由于当字节长度大于255时,会出现一些偏差,因此,本实施例中,字节最大值Z为255。
S2、定义一个第一缓冲字节数组buffer1,所述第一缓冲字节数组buffer1的字节长度为M,所述第一缓冲字节数组buffer1的字节长度根据外部硬件配置而定,如10k,
byte[] buffer 1= new byte[10*1024]。
S3、清空所述第一缓冲字节数组buffer1中的字节,从需要加密的原始文件中按字节排列的顺序读取长度为M的待读取的字节到所述第一缓冲字节数组buffer1中,当所述原始文件中的字节被读取到所述第一缓冲字节数组buffer1中后,剩下的未被读取的字节成为待读取的字节;
S4、将所述第一缓冲字节数组buffer1中的每个字节结合原加密文件流的当前位置P以及字节最大值Z进行求余运算后得到的余数作为索引在所述密钥库A中找到对应的用于加密的密钥;然后将得到的每一个用于加密的所述密钥和本次读取到所述第一缓冲字节数组buffer1中的字节依次进行异或运算得到加密字节。
具体步骤为:
S4.1、获取原加密文件流的当前位置P,其中,所述原加密文件流的当前位置P可以这样理解:
如果是才开始对原始文件进行加密,第一缓冲字节数组buffer1中存储的字节是从原始文件的首个字符开始进行存储的,那么,此时的原加密文件流无加密字节,其当前位置P=0,如果对原始文件前面的一部分字符已经进行加密形成原加密文件流,该原加密文件流的字节长度为10byte,那么,该原加密文件流的当前位置P=9;
S4.2、循环所述第一缓冲字节数组buffer1中的字节,对所述第一缓冲字节数组buffer1中的每个字节分别按(P+第一缓冲字节数组buffer1中的字节所在位置索引)除以字节最大值Z求余得到所述第一缓冲字节数组buffer1中的每个字节的余数,即:
i为所述第一缓冲字节数组buffer1中第i个字节,表示所述第一缓冲字节数组buffer1中第i个字节对应的余数;
比如,在缓冲字节数组中的第一字节,它的位置索引就是1。
S4.3、将得到的若干所述余数分别作为索引在所述密钥库A中找到对应的用于加密的密钥,所述余数的数值即为密钥的顺序编号,/>
由于随机字符串是用于区别一个线程的起点,类似业务并发时,有可能生产多个起点,通过定义随机字符串区别于不同的线程起点,也就是线程起点标识,因此,这里在查找对应的密钥时,可以同时对多个密钥进行查找。
S4.4、对得到的用于加密的密钥和本次读取到所述第一缓冲字节数组buffer1中的字节对应依次进行异或运算得到加密字节,即第i个加密字节=(第i个第一缓冲字节数组buffer1中的字节)^/>
S5、将得到的所述加密字节从原加密文件流的最后字节的后一位按照加密字节排列的顺序依次写入,形成新的原加密文件流;
S6、判断所述原始文件中是否还有待读取的字节,若是,则跳转至S3,否则,跳转至S7;
S7、新的原加密文件流即为原始文件对应的加密文件,结束加密过程。
根据公式a=(a^b)^b,其中a^b即为加密上述加密环节中产生的加密直接,所以只需按加密环境中找到对应的b,然后进行异或运算,即可得到解密结果。因此,如图2所示,实施例2还公开了一种基于异或和求余的文件解密方法,对实施例1的一种基于异或和求余的文件加密方法进行加密后的加密文件进行解密,包括:
T1、定义一个第二缓冲字节数组buffer2,所述第二缓冲字节数组buffer2的字节长度为N,所述第二缓冲字节数组buffer2的字节长度根据外部硬件配置而定;
T2、清空所述第二缓冲字节数组buffer2中的字节,从需要解密的加密文件中按加密字节排列的顺序读取长度为N的待读取的加密字节到所述第二缓冲字节数组buffer2中,当所述加密文件中的加密字节被读取到所述第二缓冲字节数组buffer2中后,剩下的未被读取的加密字节成为待读取的加密字节;
T3、将所述第二缓冲字节数组buffer2中的每个加密字节结合原解密文件流的当前位置K以及字节最大值Z进行求余运算后得到的余数作为索引在密钥库A中找到对应的用于解密的密钥;然后将得到的每一个用于解密的所述密钥和本次读取到所述第二缓冲字节数组buffer2中的加密字节依次进行异或运算得到解密字节;
T4、将得到的所述解密字节从原解密文件流的最后字节的后一位按照解密字节排列的顺序依次写入,形成新的原解密文件流;
T5、判断所述加密文件中是否还有待读取的加密字节,若是,则跳转至T2,否则,跳转至T6;
T6、新的原解密文件流即为原始文件,结束解密过程。
T3的具体步骤为:
T3.1、获取原解密文件流的当前位置K;
如果是才开始对加密文件进行解密,第二缓冲字节数组buffer2中存储的字节是从加密文件的首个加密字节开始进行存储的,那么,此时的原解密文件流无解密字节,其当前位置K=0。
如果对加密文件前面的一部分字符已经进行解密形成原解密文件流,该原解密文件流的字节长度为20byte,那么,该原加密文件流的当前位置K=19。
T3.2、循环所述二缓冲字节数组buffer2中的加密字节,对所述二缓冲字节数组buffer2中的每个加密字节分别按(K+第二缓冲字节数组buffer2中的加密字节所在位置索引)除以字节最大值Z求余得到所述二缓冲字节数组buffer2中的每个加密字节的余数,即:
j为所述第二缓冲字节数组buffer2中第j个加密字节,表示所述第二缓冲字节数组buffer2中第j个加密字节对应的余数;
T3.3、将得到的若干加密字节的余数分别作为索引在所述密钥库A中找到对应的用于解密的密钥,该加密字节的余数的数值即为密钥的顺序编号;/>
T3.4、对得到的用于解密的密钥和本次读取到所述第二缓冲字节数组buffer2中的字节对应依次进行异或运算得到解密字节,即第j个解密字节=(第j个第二缓冲字节数组buffer2中的加密字节)^/>
本实施例中,T3中使用的密钥库A与实施例1的一种基于异或和求余的文件加密方法中设计出来的密钥库A为同一个密钥库。
实施例3还公开了一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述的方法。
实施例4还公开了一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法。
下面是C#实现方式来实现加密和解密方法的具体代码:
using System.Text;
const string KeyString = "一种基于异或求余运算的文件加解密方法," +
"该方法可以用于任何领域需要对文件进行加解密的场景。" +
"它使用一个长度不小于255字节的随机字符串作为密钥库," +
"可以包含数字、字母、汉字等任意字符," +
"使用异或运算和求余运算对文件进行加解密。";
var keys = System.Text.Encoding.UTF8.GetBytes(KeyString);
//文件加密
using (var orgStream = new FileStream("原加密文件",FileMode.OpenOrCreate))
{
using (var encryptStream = new FileStream("加密后的文件",FileMode.OpenOrCreate))
{
var buffer = new byte[10];
var count = 0;
while ((count = orgStream.Read(buffer, 0, buffer.Length))>0)
{
var p = (int)encryptStream.Position;
for (int i = 0; i<buffer.Length; i++)
{
buffer[i] ^= keys[(p + i) % 255];
}
encryptStream.Write(buffer, 0, count);
}
}
}
//文件解密
using (var encryptStream1 = new FileStream("加密后的文件",FileMode.OpenOrCreate))
{
using (var decryptStream = new FileStream("解密文件",FileMode.OpenOrCreate))
{
var buffer1 = new byte[1];
var count1 = 0;
while ((count1 = encryptStream1.Read(buffer1, 0,buffer1.Length))>0)
{
var p = (int)decryptStream.Position;
for (int i = 0; i<buffer1.Length; i++)
{
buffer1[i] ^= keys[(p + i) % 255];
}
decryptStream.Write(buffer1, 0, count1);
}
}
}
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于异或和求余的文件加密方法,其特征在于,包括:
S1、使用随机字符串设计一个密钥库A,,a为密钥库中的密钥,n为密钥的数量;
S2、定义一个第一缓冲字节数组buffer1,所述第一缓冲字节数组buffer1的字节长度为M;
S3、清空所述第一缓冲字节数组buffer1中的字节,从需要加密的原始文件中按字节排列的顺序读取长度为M的待读取的字节到所述第一缓冲字节数组buffer1中,当所述原始文件中的字节被读取到所述第一缓冲字节数组buffer1中后,剩下的未被读取的字节成为待读取的字节;
S4、将所述第一缓冲字节数组buffer1中的每个字节结合原加密文件流的当前位置P以及字节最大值Z进行求余运算后得到的余数作为索引在所述密钥库A中找到对应的用于加密的密钥;然后将得到的每一个用于加密的所述密钥和本次读取到所述第一缓冲字节数组buffer1中的字节对应依次进行异或运算得到加密字节;
S5、将得到的所述加密字节从原加密文件流的最后字节的后一位按照加密字节排列的顺序依次写入,形成新的原加密文件流;
S6、判断所述原始文件中是否还有待读取的字节,若是,则跳转至S3,否则,跳转至S7;
S7、新的原加密文件流即为原始文件对应的加密文件,结束加密过程。
2.根据权利要求1所述的一种基于异或和求余的文件加密方法,其特征在于,S1的具体过程为:
S1.1、使用随机字符串定义一个字符串库;
S1.2、对所述字符串库进行加密,得到密钥库A。
3.根据权利要求2所述的一种基于异或和求余的文件加密方法,其特征在于,所述字符串库的字节长度不小于所述字节最大值Z,且所述字符串库中的字符包括数字、字母、汉字的其中一种或者多种。
4.根据权利要求2所述的一种基于异或和求余的文件加密方法,其特征在于,S1.2中,通过对所述字符串库进行utf-8编码或者Unicode编码的方式对所述字符串库进行加密。
5.根据权利要求1所述的一种基于异或和求余的文件加密方法,其特征在于,S4的具体步骤为:
S4.1、获取原加密文件流的当前位置P;
S4.2、循环所述第一缓冲字节数组buffer1中的字节,对所述第一缓冲字节数组buffer1中的每个字节分别按(P+字节所在位置索引)除以字节最大值Z求余得到所述第一缓冲字节数组buffer1中的每个字节的余数,即:
i为所述第一缓冲字节数组buffer1中第i个字节,表示所述第一缓冲字节数组buffer1中第i个字节对应的余数;
S4.3、将得到的若干所述余数分别作为索引在所述密钥库A中找到对应的用于加密的密钥,所述余数的数值即为密钥的顺序编号;
S4.4、对得到的用于加密的密钥和本次读取到所述第一缓冲字节数组buffer1中的字节对应依次进行异或运算得到加密字节,即第i个加密字节=(第i个第一缓冲字节数组buffer1中的字节)^/>
6.一种基于异或和求余的文件解密方法,对权利要求1-5任一所述的一种基于异或和求余的文件加密方法进行加密后的加密文件进行解密,其特征在于,包括:
T1、定义一个第二缓冲字节数组buffer2,所述第二缓冲字节数组buffer2的字节长度为N;
T2、清空所述第二缓冲字节数组buffer2中的字节,从需要解密的加密文件中按加密字节排列的顺序读取长度为N的待读取的加密字节到所述第二缓冲字节数组buffer2中,当所述加密文件中的加密字节被读取到所述第二缓冲字节数组buffer2中后,剩下的未被读取的加密字节成为待读取的加密字节;
T3、将所述第二缓冲字节数组buffer2中的每个加密字节结合原解密文件流的当前位置K以及字节最大值Z进行求余运算后得到的余数作为索引在密钥库A中找到对应的用于解密的密钥;然后将得到的每一个用于解密的所述密钥和本次读取到所述第二缓冲字节数组buffer2中的加密字节依次进行异或运算得到解密字节;
T4、将得到的所述解密字节从原解密文件流的最后字节的后一位按照解密字节排列的顺序依次写入,形成新的原解密文件流;
T5、判断所述加密文件中是否还有待读取的加密字节,若是,则跳转至T2,否则,跳转至T6;
T6、新的原解密文件流即为原始文件,结束解密过程。
7.根据权利要求6所述的一种基于异或和求余的文件解密方法,其特征在于,T3的具体步骤为:
T3.1、获取原解密文件流的当前位置K;
T3.2、循环所述二缓冲字节数组buffer2中的加密字节,对所述二缓冲字节数组buffer2中的每个加密字节分别按(K+加密字节所在位置索引)除以字节最大值Z求余得到所述二缓冲字节数组buffer2中的每个加密字节的余数,即:
j为所述第二缓冲字节数组buffer2中第j个加密字节,表示所述第二缓冲字节数组buffer2中第j个加密字节对应的余数;
T3.3、将得到的若干加密字节的余数分别作为索引在所述密钥库A中找到对应的用于解密的密钥,该加密字节的余数的数值即为密钥的顺序编号;
T3.4、对得到的用于解密的密钥和本次读取到所述第二缓冲字节数组buffer2中的字节对应依次进行异或运算得到解密字节,即第j个解密字节=(第j个第二缓冲字节数组buffer2中的加密字节)^/>
8.根据权利要求6所述的一种基于异或和求余的文件解密方法,其特征在于,T3中使用的密钥库A与权利要求1-5任一所述的一种基于异或和求余的文件加密方法中设计出来的密钥库A为同一个密钥库。
9.一种电子设备,其特征在于,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任一所述的方法。
10.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法。
CN202311159556.0A 2023-09-11 2023-09-11 基于异或和求余的文件加密方法、解密方法、设备及介质 Active CN116894273B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311159556.0A CN116894273B (zh) 2023-09-11 2023-09-11 基于异或和求余的文件加密方法、解密方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311159556.0A CN116894273B (zh) 2023-09-11 2023-09-11 基于异或和求余的文件加密方法、解密方法、设备及介质

Publications (2)

Publication Number Publication Date
CN116894273A CN116894273A (zh) 2023-10-17
CN116894273B true CN116894273B (zh) 2023-11-21

Family

ID=88315231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311159556.0A Active CN116894273B (zh) 2023-09-11 2023-09-11 基于异或和求余的文件加密方法、解密方法、设备及介质

Country Status (1)

Country Link
CN (1) CN116894273B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725605B (zh) * 2024-02-07 2024-04-23 四川建设网有限责任公司 一种远端自动编制电子档案文件信息保密的方法和***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148013A (ja) * 1998-11-16 2000-05-26 Fujitsu Ltd 有限体の定義多項式を用いた剰余演算装置
JP2008256817A (ja) * 2007-04-03 2008-10-23 Tsutomu Tatsuzawa ストリーム暗号方法および復号方法、並びにパイ・データに基づく暗号算法および復号化算法
CN101471769A (zh) * 2007-12-28 2009-07-01 北京大唐高鸿数据网络技术有限公司 一种适于VoIP媒体传输的加解密方法
CN101938350A (zh) * 2010-07-16 2011-01-05 黑龙江大学 一种基于组合编码的文件加密和解密的方法
CN102708534A (zh) * 2012-04-12 2012-10-03 江苏技术师范学院 变参数多级混沌伪随机序列的产生方法
CN104883257A (zh) * 2014-06-12 2015-09-02 梁庆生 一种大数据加密方法
CN115913571A (zh) * 2022-11-16 2023-04-04 湖南快乐阳光互动娱乐传媒有限公司 文件加密、解密方法和装置,及数字版权保护***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4256415B2 (ja) * 2006-09-04 2009-04-22 株式会社日立製作所 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム
DE102007005636B4 (de) * 2007-02-05 2008-11-13 Infineon Technologies Ag Verfahren zum Erzeugen eines Verkehr-Verschlüsselung-Schlüssels, Verfahren zum Übertragen von Daten, Einrichtungen zum Erzeugen eines Verkehr-Verschlüsselung-Schlüssels,Datenübertragungs-Anordnung

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148013A (ja) * 1998-11-16 2000-05-26 Fujitsu Ltd 有限体の定義多項式を用いた剰余演算装置
JP2008256817A (ja) * 2007-04-03 2008-10-23 Tsutomu Tatsuzawa ストリーム暗号方法および復号方法、並びにパイ・データに基づく暗号算法および復号化算法
CN101471769A (zh) * 2007-12-28 2009-07-01 北京大唐高鸿数据网络技术有限公司 一种适于VoIP媒体传输的加解密方法
CN101938350A (zh) * 2010-07-16 2011-01-05 黑龙江大学 一种基于组合编码的文件加密和解密的方法
CN102708534A (zh) * 2012-04-12 2012-10-03 江苏技术师范学院 变参数多级混沌伪随机序列的产生方法
CN104883257A (zh) * 2014-06-12 2015-09-02 梁庆生 一种大数据加密方法
CN115913571A (zh) * 2022-11-16 2023-04-04 湖南快乐阳光互动娱乐传媒有限公司 文件加密、解密方法和装置,及数字版权保护***

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish);Bruce Sctmeier;International Workshop on Fast Software Encryption;第191-204页 *
Medical image encryption using high-speed scrambling and pixel adaptive diffusion;Zhongyun Hua 等;Signal Processing 144 (2018);第134-144页 *
基于文本重要内容的鲁棒水印算法;姜传贤;陈孝威;李智;;自动化学报(第09期);第1250-1256页 *
基于随机码数列的文件加密算法的实现;孙玉强;顾玉宛;孙富琴;;微计算机信息(第06期);第70-71+89页 *
等级访问控制下密文数据库密钥管理方案研究;胡前伟 等;计算机科学与探索;第11卷(第6期);第921-931页 *

Also Published As

Publication number Publication date
CN116894273A (zh) 2023-10-17

Similar Documents

Publication Publication Date Title
CN111310222B (zh) 文件加密方法
US8284933B2 (en) Encrypting variable-length passwords to yield fixed-length encrypted passwords
KR101324825B1 (ko) 메시지 인증 코드 사전 연산 방법 및 시스템
US7406174B2 (en) System and method for n-dimensional encryption
US10009169B2 (en) Format-preserving cipher
US10461924B2 (en) Format-preserving cipher
CN116894273B (zh) 基于异或和求余的文件加密方法、解密方法、设备及介质
KR101989813B1 (ko) 특정 포맷을 가지는 대체 데이터의 생성 및 검증
US9313023B1 (en) Format-preserving cipher
CN114417073B (zh) 一种加密图的邻居节点查询方法及装置、电子设备
US7599492B1 (en) Fast cryptographic key recovery system and method
CN110543778A (zh) 一种字符数据线性随机加密和解密算法
CN112287374A (zh) Excel密文文档恢复方法、计算机设备及存储介质
CN107315539B (zh) 一种数据存储方法以及数据提取方法
CN115641130A (zh) 基于改进雪花算法生成交易记录id的方法、装置及设备
CN116132977B (zh) 一种鼠标安全加密认证方法
CN104794243A (zh) 基于文件名的第三方密文检索方法
CN117134914A (zh) 一种基于硬件特征的一次一密的随机秘钥流式加密算法及***
CN113055155A (zh) 一种基于大数据平台的数据安全存储方法
CN117135291A (zh) 一种图像加密方法、***、设备及介质
Avanzi et al. Qameleon v. 1.0
CN115168909A (zh) 一种基于比较索引的密文数据范围查询方法和***
US9058507B2 (en) Signal processor with an encrypting or decrypting device in a memory system
CN100359494C (zh) 电子文件字符内码变换加密方法
CN114254372B (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