CN105099652B - 数据加密、解密方法和装置 - Google Patents
数据加密、解密方法和装置 Download PDFInfo
- Publication number
- CN105099652B CN105099652B CN201410185427.3A CN201410185427A CN105099652B CN 105099652 B CN105099652 B CN 105099652B CN 201410185427 A CN201410185427 A CN 201410185427A CN 105099652 B CN105099652 B CN 105099652B
- Authority
- CN
- China
- Prior art keywords
- numerical value
- character
- default system
- value
- default
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种数据加密方法,所述方法包括:根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值;将所述第一数值作为第二预设进制的数值而将所述第一数值转化为第三预设进制的第二数值,获得加密数据;其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间。本发明提供的数据加密方法,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而高效地实现了对待加密字符进行加密,且节省存储空间。本发明还提供了一种数据解密方法、数据加密装置以及数据解密装置。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种数据加密、解密方法和装置。
背景技术
对数据进行加密是保护信息安全的有效技术手段,传统技术中已存在多种数据加密方法,比如MD5(Message Digest Algorithm 5,消息摘要算法第五版)、PHP(HypertextPreprocessor,超文本预处理器)中的Mcrypt(一种加密扩展库)等,然而MD5是单向加密,不能解密还原,而PHP中的Mcrypt加密后不能直接显示出来或者显示乱码,不便查看和录入,而且配置繁琐等,传统的数据加密方法已难以满足快速发展的信息技术的安全需求。
发明内容
基于此,有必要针对上述问题,提供一种高效的可解密还原的数据加密、解密方法和装置。
一种数据加密方法,所述方法包括:
根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值;所述第一预设进制为二进制;
获取与所述第一数值等长的密钥二进制串;
将所述第一数值与所述密钥二进制串进行异或运算后获得异或运算结果数值;
将所述异或运算结果数值作为第二预设进制的数值而将所述异或运算结果数值转化为第三预设进制的第二数值,获得加密数据;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间。
一种数据加密装置,所述装置包括:
映射模块,用于根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值;所述第一预设进制为二进制;
加密模块,用于将所述第一数值作为第二预设进制的数值而将所述第一数值转化为第三预设进制的第二数值,获得加密数据;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间;
所述加密模块包括:
密钥二进制串获取模块,用于获取与所述第一数值等长的密钥二进制串;
异或运算模块,用于将所述第一数值与所述密钥二进制串进行异或运算后获得异或运算结果数值;
加密执行模块,用于将所述异或运算结果数值作为第二预设进制的数值而将所述异或运算结果数值转化为第三预设进制的第二数值,获得加密数据。
上述数据加密方法和装置,先将待加密字符映射为第一预设进制的第一数值,而由于第二预设进制的基数大于第一预设进制的基数,这样用来表示第一预设进制的数值的数学符号必然可以用来表示第二预设进制的部分数值,因此可将第一数值作为第二预设进制的数值而将第一数值转化为第三预设进制的第二数值,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而高效地实现了对待加密字符进行加密。而且由于第二预设进制的基数小于第三预设进制的基数,则最终获得的加密数据是用较高基数的进制表示的,可节省存储空间。
一种数据解密方法,用于对根据上述的数据加密方法所获得的加密数据进行解密,所述数据解密方法包括:
以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值;所述预设位数为将一字节的第一预设进制的数值当作第二预设进制的数值而转化为第三进制的数值的位数;所述第一预设进制为二进制;
将所述第一中间数值转化为第二预设进制的第二中间数值;
获取与所述第二中间数值等长的密钥二进制串;
将所述第二中间数值作为第一预设进制的数值与所述密钥二进制串进行异或运算,获得运算结果数值;
根据预设字符库中字符与数值的映射关系,将所述运算结果数值映射为字符,获得解密的字符;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间。
一种数据解密装置,用于对根据上述的数据加密装置所获得的加密数据进行解密,所述数据解密装置包括:加密数据划分模块、第一中间数值转化模块和解密模块;
所述加密数据划分模块,用于以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值;所述预设位数为将一字节的第一预设进制的数值当作第二预设进制的数值而转化为第三进制的数值的位数;所述第一预设进制为二进制;
所述第一中间数值转化模块,用于将所述第一中间数值转化为第二预设进制的第二中间数值;
所述解密模块,用于将所述第二中间数值作为第一预设进制的数值后,根据预设字库中数值与字符的映射关系将所述第二中间数值映射为字符,获得解密的字符;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间;
所述解密模块包括:
获取模块,用于获取与所述第二中间数值等长的密钥二进制串;
运算模块,用于将所述第二中间数值作为第一预设进制的数值与所述密钥二进制串进行异或运算,获得运算结果数值;
解密执行模块,用于根据预设字符库中字符与数值的映射关系,将所述运算结果数值映射为字符,获得解密的字符。
上述数据解密方法和装置,由于第二预设进制的基数小于第三预设进制的基数,这样加密数据本身所占的存储空间少。而将第三预设进制的加密数据以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值,再将第一中间数值转化为第二预设进制的第二中间数值,然后将该第二中间数值作为第一预设进制的数值后映射为字符,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而实现了高效地对采用上述数据加密方法获得的加密数据进行解密,使得加密数据是可以还原的。
附图说明
图1为一个实施例中数据加密方法的流程示意图;
图2为一个具体实施例中数据加密方法的流程示意图;
图3为另一个具体实施例中数据加密方法的流程示意图;
图4为一个实施例中数据解密方法的流程示意图;
图5为一个具体实施例中数据解密方法的流程示意图;
图6为另一个具体实施例中数据解密方法的流程示意图;
图7为一个实施例中数据加密装置的结构框图;
图8为图7中的加密模块的一个实施例的结构框图;
图9为一个实施例中数据解密装置的结构框图;
图10为图7中的解密模块的一个实施例的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,提供了一种数据加密方法,该方法包括以下步骤:
步骤102,根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值。
预设字符库中预先设置了字符与数值的映射关系,预设字符库中预设的映射为的数值可以是第一预设进制的数值,这样可直接将待加密字符映射为第一预设进制的第一数值。预设字符库中预设的映射为的数值也可以是非第一预设进制的其它任意进制的数值,这样在将待加密字符映射为其它进制的第一数值后,可再对其进行进制转化而获得第一预设进制的第一数值。
文中第一、第二、第三的描述用于区分不同的元件或概念。预设字符库可以是ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)编码表、扩展ASCII编码表、Unicode(统一码,是一种在计算机上使用的字符编码)编码表、或者UTF-8(8-bit Unicode Transformation Format,是一种针对Unicode的可变长度字符编码,又称万国码)编码表等。采用何种预设字符库可取决于用户需要和/或待加密数据中字符的种类。字符的种类比如是英文字符或汉字字符等。
在一个实施例中,步骤102包括:根据预设字符库中字符与数值的映射关系,若待加密字符在预设字符库中映射的数值多于一个字节,则将映射的数值按字节进行分割,以获得第一预设进制的第一数值。
计算机存储信息是按字节为单位的,一字节等于8位二进制数。在UTF-8编码表中,比如a~z,A~Z这样的英文字符为一个字节,而汉字则为三个字节。若待加密字符在预设字符库中映射的数值多于一个字节,则需要将映射的数值按字节进行分割,以获得第一预设进制的第一数值。这样获得的第一数值数据结构统一,便于计算,实现了对汉字加密的支持。
比如,当第一预设进制为二进制时,若待加密字符为“a”,则可根据ASCII编码表将字符“a”映射为二进制的第一数值为“01100001”;若待加密字符为汉字“汉”,则可根据UTF-8编码表将字符“汉”映射为二进制的第一数值为:“11100110”、“10110001”和“10001001”。
步骤104,将第一数值作为第二预设进制的数值而将第一数值转化为第三预设进制的第二数值,获得加密数据;其中,第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间。
具体地,需要将第一数值作为第二预设进制的数值而将该第一数值进行进制转化,以转化为第三预设进制的第三数值,从而获得加密数据。在转化为第三预设进制的第三数值的过程中可以进行多次进制转化,最终转化为第三预设进制的第三数值。
第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间,是指第二预设进制的基数大于第一预设进制的基数,且第二预设进制的基数小于第三预设进制的基数。其中一个进制的基数是指表示该进制用来表示数值的所有互异的数学符号的个数。比如二进制用“0”和“1”表示,则二进制的基数为2;十六进制用数字0至9,字符a至f表示,则十六进制的基数为16,而且表示第一预设进制的数值的数学符号的集合包含于表示第二预设进制的数学符号的集合。第二预设进制优选为三进制、五进制、七进制或九进制等,这些进制不是常用的进制,可以降低被破解的概率。
比如,若待加密字符为“a”,第一预设进制为二进制,第二预设进制为三进制,第三预设进制为十六进制,则第一数值为“01100001”,将其视为三进制的数值,再将三进制的“01100001”转化为十六进制为“03cd”。可以理解的是将二进制的数值当做三进制的数值,其表示的实际数值已经发生变化。
上述数据加密方法,先将待加密字符映射为第一预设进制的第一数值,而由于第二预设进制的基数大于第一预设进制的基数,这样用来表示第一预设进制的数值的数学符号必然可以用来表示第二预设进制的部分数值,因此可将第一数值作为第二预设进制的数值而将第一数值转化为第三预设进制的第二数值,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而高效地实现了对待加密字符进行加密。而且由于第二预设进制的基数小于第三预设进制的基数,则最终获得的加密数据是用较高基数的进制表示的,可节省存储空间。
在一个实施例中,第一预设进制为二进制;则步骤104包括步骤11)~步骤13):
步骤11),获取与第一数值等长的密钥二进制串。
第一数值为二进制数,密钥二进制串是指将密钥按照字节分割后转化为二进制的数值。密钥二进制串与第一数值等长,是指第一数值中数学符号的个数和密钥二进制串中数学符号的个数相等,使得两者可以做异或运算。比如若第一数值为“01100001”,则密钥二进制串可以是“01100010”。其中密钥是事先设置的用于与第一数值进行异或运算的字符或字符串。
在一个实施例中,步骤11)包括:获取密钥,判断密钥所占字节是否与待加密字符组成的待加密字符串所占字节相等,若是则将密钥按字节分割并转化为二进制的密钥二进制串;若否则将密钥截取或循环补偿为与待加密字符串所占字节相等后,将密钥按字节分割并转化为二进制的密钥二进制串。
本实施例中,密钥所占字节应当与待加密字符串所占字节相等,这样才能保证待加密字符按字节分割而获得第一数值,以及将密钥按字节分割并转化为二进制的密钥二进制串后,每个第一数值能够与相应的等长密钥二进制串进行异或运算,因此需要先判断密钥所占字节是否与待加密字符组成的待加密字符串所占字节相等。
具体地,若待加密字符串所占字节等于密钥所占字节,则可直接将密钥按字节分割并转化为二进制的密钥二进制串。若待加密字符串所占字节大于密钥所占字节,则可通过循环补偿的方式修改密钥,使得待加密字符串所占字节等于密钥所占字节;其中循环补偿是指在密钥的前部或后部重复密钥自身或者自身的一部分。若待加密字符串所占字节小于密钥所占字节,则可按照加密字符串的长度截取密钥的部分字符或字符串作为新的密钥。
举例说明,若待加密字符串为“abcde”,密钥为“fg”,此时待加密字符串所占字节大于密钥所占字节,则可通过循环补偿的方式获得新的密钥为“fgfgf”。若待加密字符串为“abc”,密钥为“defg”,则可通过截取的方式获得新的密钥为“def”。若待加密字符串为“汉”,密钥为“abcde”,而汉字需要占用三个字节,则可通过截取的方式获得新的密钥为“cde”。
步骤12),将第一数值与密钥二进制串进行异或运算后获得异或运算结果数值。
异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。不同为1,相同为0。根据以上原理,我们可以得出加密解密公式:
明文二进制串⊕密钥二进制串=密文二进制串;
密文二进制串⊕密钥二进制串=明文二进制串。
因此,采用异或加密是可逆的。
在一个实施例中,步骤12)之后,可再获取新的与第一数值等长的密钥二进制串,将已获得的异或运算结果数值作为第一数值代入步骤11)~步骤12)进行预设次数的迭代,每次迭代使用不同的密钥二进制串,从而获得最终的异或运算结果数值。这样使得加密更为可靠。解密时需要按照与加密时获取密钥二进制串的顺序相反的顺序获取密钥二进制串进行逐层解密。
步骤13),将异或运算结果数值作为第二预设进制的数值而将异或运算结果数值转化为第三预设进制的第二数值,获得加密数据。
获得异或运算结果后,将异或运算结果数值作为第二预设进制的数值而将异或运算结果数值转化为第三预设进制的第二数值,这样将异或加密技术与利用不同进制之间的数学符号的包含关系进行进制转化的加密技术相结合,使得加密更为可靠。
举例说明,如图2所示,假设待加密字符为“a”,第一预设进制为二进制,第二预设进制为三进制,第三预设进制为十六进制,图2中虚线箭头表示等效步骤。则具体包括:首先需要将待加密字符“a”映射为二进制的第一数值为“01100001”,将二进制的第一数值“01100001”作为三进制的数值后,将三进制的“01100001”转化为十六进制的第二数值为“03cd”,则加密数据为“03cd”。
其中,将待加密字符“a”映射为二进制的第一数值为“01100001”具体等效为:取待加密字符“a”的十进制ASCII码为97,将其转化为二进制数获得第一数值为“01100001”。
将三进制的“01100001”转化为十六进制的第二数值为“03cd”,则加密数据为“03cd”具体等效为:将三进制的“01100001”转化为十进制为“973”,再转化为二进制为“1111001101”,由于“1111001101”的位数不是字节的整数倍,则需要将其左边补零补满16位为“0000001111001101”。将“0000001111001101”划分为前八位“00000011”和后八位“11001101”后分别转化为十六进制为“03”和“cd”,再将分别转化的十六进制数值合并获得十六进制的第二数值为“03cd”。
再比如,如图3所示,假设待加密字符为汉字“汉”,第一预设进制为二进制,第二预设进制为三进制,第三预设进制为十六进制,密钥为“ab”。则具体包括以下步骤:
将待加密字符“汉”的三个字节依次取其十进制ASCII码分别为:“230”、“177”和“137”,再分别转化为二进制的第一数值为“11100110”“10110001”和“10001001”。
由于密钥“ab”所占字节为两个字节与“汉”所占字节不同,因此需要将密钥“ab”进行循环补偿得到新的密钥为“aba”。然后将密钥“aba”按字节分割为“a”“b”“a”并分别取十进制ASCII码为“97”“98”“97”,再分别转化为二进制获得密钥二进制串为“01100001”“01100010”和“01100001”。
将第一数值和与其对应的密钥二进制串进行异或运算获得异或运算结果数值为“10000111”“11010011”和“11101000”,将异或运算结果作为三进制的数值而转化为十六进制为“0898”“0bb9”和“0c72”,组合后获得加密数据为“08980bb90c72”
如图4所示,在一个实施例中,提供了一种数据解密方法,用于对采用上述各个实施例的数据加密方法获得的加密数据进行解密,具体包括以下步骤:
步骤402,以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值;预设位数为将一字节的第一预设进制的数值当作第二预设进制的数值而转化为第三进制的数值的位数。
这里的加密数据为采用上述各个实施例的数据加密方法所获得的加密数据。本实施例中的第一、第二、第三预设进制分别为与上述各个实施例的数据加密方法中的第一、第二、第三预设进制对应。
由于加密时被加密字符是以字节为单位进行加密的,因此解密时需要以预设位数为单位将加密数据划分为一个或多个第一中间数值。这里的被加密字符对应上述各个实施例的数据加密方法中的待加密字符。中间数值表示解密的中间过程中所产生的数值。若被加密的字符仅占一个字节,则相应的第一中间数值为一个。这里的预设位数是将任意一字节的第一预设进制的数值当作第二预设进制的数值后,将该数值转化为第三进制的数值的位数。比如二进制的“11111111”当作三进制后,转化为十六进制为“0cd0”,则此时预设位数为4。而由于一字节的数值当作三进制而转化为十六进制的数值的四位的第一位总是“0”,因此预设位数可为三位,事先约定即可。
步骤404,将第一中间数值转化为第二预设进制的第二中间数值。
可将第三预设进制的第一中间数值直接转化为第二预设进制的第二中间数值,也可以先将第三预设进制的第一中间数值转化为其它任意进制的数值后再转化为第二预设进制的第二中间数值。
步骤406,将第二中间数值作为第一预设进制的数值后,根据预设字库中数值与字符的映射关系将第二中间数值映射为字符,获得解密的字符。其中,第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间。
预设字符库中预先设置了数值与字符的映射关系,预设字符库中预设的被映射的数值可以是第一预设进制的数值,这样可直接将第一预设进制的第二中间数值映射为字符。预设字符库中预设的被映射的数值也可以是非第一预设进制的其它任意进制的数值,这样可先将第一预设进制的第二中间数值转化为预设字符库中预设的被映射的数值的进制后,再根据预设字符库中数值与字符的映射关系映射为字符。
预设字符库可以是ASCII编码表、扩展ASCII编码表、Unicode编码表、或者UTF-8编码表等。本实施例中采用的预设字符库与上述各个实施例的数据加密方法中使用的预设字符库相同。
第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间,是指第二预设进制的基数大于第一预设进制的基数,且第二预设进制的基数小于第三预设进制的基数。其中一个进制的基数是指表示该进制用来表示数值的所有互异的数学符号的个数。第二预设进制优选为三进制、五进制、七进制或九进制等,这些进制不是常用的进制,可以降低被破解的概率。
在一个实施例中,将第二中间数值作为第一预设进制的数值后,根据预设字库中数值与字符的映射关系将第二中间数值映射为字符,获得解密的字符的步骤,包括:若被加密字符仅占用一个字节,则根据预设字库中数值与字符的映射关系,直接将作为第一预设进制的第二中间数值映射为字符;若被加密字符占用多个字节,则可根据被加密字符占用字节的个数将连续多个第二中间数值组合后,根据预设字库中数值与字符的映射关系将作为第一预设进制的多个第二中间数值的组合映射为字符,获得解密的字符。
上述数据解密方法,由于第二预设进制的基数小于第三预设进制的基数,这样加密数据本身所占的存储空间少。而将第三预设进制的加密数据以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值,再将第一中间数值转化为第二预设进制的第二中间数值,然后将该第二中间数值作为第一预设进制的数值后映射为字符,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而实现了高效地对采用上述数据加密方法获得的加密数据进行解密,使得加密数据是可以还原的。
在一个实施例中,第一预设进制为二进制;则将第二中间数值作为第一预设进制的数值后,根据预设字库中数值与字符的映射关系将第二中间数值映射为字符,获得解密的字符的步骤,具体包括步骤21)~步骤23):
步骤21),获取与第二中间数值等长的密钥二进制串。
第二中间数值为二进制数,密钥二进制串是指将密钥按照字节分割后转化为二进制的数值。密钥二进制串与第二中间数值等长,是指第二中间数值中数学符号的个数和密钥二进制串中数学符号的个数相等,使得两者可以做异或运算。比如若第二中间数值为“01100001”,则密钥二进制串可以是“01100010”。其中密钥是事先设置的用于与第二中间数值进行异或运算的字符或字符串,密钥与密钥二进制串分别与上述各个实施例的数据加密方法中的密钥和密钥二进制串一致。
在一个实施例中,步骤21)包括:获取密钥,判断加密数据的长度与预设位数的商是否与密钥所占字节的个数相等,若是则将密钥按字节分割并转化为二进制的密钥二进制串;若否则将密钥截取或循环补偿为与上述商相等后,将密钥按字节分割并转化为二进制的密钥二进制串。
本实施例中,密钥所占字节应当与被加密字符串所占字节相等,这样才能保证第二中间数值,以及将密钥按字节分割并转化为二进制的密钥二进制串后,每个第二中间数值都能够与相应的等长密钥二进制串进行异或运算,因此需要先判断加密数据的长度与预设位数的商是否与密钥所占字节的个数相等。
具体地,若加密数据的长度与预设位数的商等于密钥所占字节的个数,则可直接将密钥按字节分割并转化为二进制的密钥二进制串。若加密数据的长度与预设位数的商大于密钥所占字节的个数,则可通过循环补偿的方式修改密钥,使得被加密字符串所占字节等于密钥所占字节;其中循环补偿是指在密钥的前部或后部重复密钥自身或者自身的一部分。若加密数据的长度与预设位数的商小于密钥所占字节的个数,则可按照加密字符串的长度截取密钥的部分字符或字符串作为新的密钥。
步骤22),将第二中间数值作为第一预设进制的数值与密钥二进制串进行异或运算,获得运算结果数值。
将第二中间数值作为第一预设进制的数值后,将作为第一预设进制的第二中间数值与密钥二进制串进行异或运算,从而获得运算结果数值。
在一个实施例中,步骤22)之后,可按照与加密时获取密钥二进制串的顺序相反的顺序逐个获取密钥二进制串后,将已获得的运算结果数值作为第二中间数值代入步骤21)~步骤22)进行预设次数的迭代,从而获得最终的运算结果数值。
步骤23),根据预设字符库中字符与数值的映射关系,将运算结果数值映射为字符,获得解密的字符。
获得运算结果数值后,根据预设字符库中数值与字符的映射关系,将运算结果数值映射为字符,最终获得解密的字符。
举例说明,如图5所示,假设加密数据为“03cd”,第一预设进制为二进制,第二预设进制为三进制,第三预设进制为十六进制,虚线箭头表示等效步骤。则具体包括如下步骤:
由于一字节的数值当作三进制而转化为十六进制的数值为四位,而十六进制的加密数据“03cd”共四位,因此可将加密数据“03cd”划分为一个第一中间数值为“03cd”,然后将十六进制的第一中间数值“03cd”转化为三进制的第二中间数值为“01100001”。将第二中间数值“01100001”作为二进制数,并根据预设字符库中数值与字符的映射关系,将作为二进制的第二中间数值“01100001”映射为字符“a”,从而获得了解密的字符。
其中,将十六进制的第一中间数值“03cd”转化为三进制的第二中间数值为“01100001”具体为:将第一中间数值“03cd”分割为“03”和“cd”后分别转化为二进制为“00000011”和“11001101”,将分别转化的二进制数组合后转化为十进制数为973,再将其转化为三进制获得第二中间数值为“01100001”。
根据预设字符库中数值与字符的映射关系,将第二中间数值“01100001”映射为字符“a”具体为:将作为二进制的第二中间数值“01100001”转化为十进制为“97”,从ASCII编码表中获取与十进制数“97”对应的字符为“a”,从而获得解密的字符。
再比如,如图6所示,假设加密数据为“08980bb90c72”,密钥为ab,第一预设进制为二进制,第二预设进制为三进制,第三预设进制为十六进制,虚线箭头表示等效步骤。则具体包括如下步骤:
由于预设位数为4,则可以预设位数为单位将十六进制的加密数据“08980bb90c72”划分为三个第一中间数值为:“0898”、“0bb9”和“0c72”。将十六进制的第一中间数值转化为三进制获得第二中间数值分别为:“10000111”“11010011”和“11101000”。
获取密钥为“ab”,由于加密数据的长度与预设位数的商为3,与密钥的长度不相等,对密钥进行循环补偿,获得新的密钥为“aba”。按字节将密钥分割为“a”“b”“a”并分别取十进制ASCII码为“97”“98”“97”,再分别转化为二进制获得密钥二进制串为“01100001”“01100010”和“01100001”。
将第二中间数值和与其对应的密钥二进制串进行异或运算获得运算结果数值为“11100110”、“10110001”和“10001001”,将运算结果数值转化为十进制后组合,根据预设字符库获取与该组合所映射的字符为“汉”,从而获得解密的字符。
如图7所示,在一个实施例中提供了一种数据加密装置,该装置包括映射模块702和加密模块704。
映射模块702,用于根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值。
预设字符库中预先设置了字符与数值的映射关系,预设字符库中预设的映射为的数值可以是第一预设进制的数值,这样映射模块702可用于直接将待加密字符映射为第一预设进制的第一数值。预设字符库中预设的映射为的数值也可以是非第一预设进制的其它任意进制的数值,这样映射模块702可用于在将待加密字符映射为其它进制的第一数值后,可再对其进行进制转化而获得第一预设进制的第一数值。
预设字符库可以是ASCII编码表、扩展ASCII编码表、Unicode编码表、或者UTF-8编码表等。采用何种预设字符库可取决于用户需要和/或待加密数据中字符的种类。
在一个实施例中,映射模块702还用于根据预设字符库中字符与数值的映射关系,若待加密字符在预设字符库中映射的数值多于一个字节,则将映射的数值按字节进行分割,以获得第一预设进制的第一数值。
计算机存储信息是按字节为单位的,一字节等于8位二进制数。在UTF-8编码表中,比如a~z,A~Z这样的英文字符为一个字节,而汉字则为三个字节。若待加密字符在预设字符库中映射的数值多于一个字节,则映射模块702用于将映射的数值按字节进行分割,以获得第一预设进制的第一数值。这样获得的第一数值数据结构统一,便于计算,实现了对汉字加密的支持。
加密模块704,用于将第一数值作为第二预设进制的数值而将第一数值转化为第三预设进制的第二数值,获得加密数据;其中,第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间。
具体地,加密模块704用于将第一数值作为第二预设进制的数值而将该第一数值进行进制转化,以转化为第三预设进制的第三数值,从而获得加密数据。加密模块704可用于在转化为第三预设进制的第三数值的过程中可以进行多次进制转化,最终转化为第三预设进制的第三数值。
第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间,是指第二预设进制的基数大于第一预设进制的基数,且第二预设进制的基数小于第三预设进制的基数。其中一个进制的基数是指表示该进制用来表示数值的所有互异的数学符号的个数,而且表示第一预设进制的数值的数学符号的集合包含于表示第二预设进制的数学符号的集合。第二预设进制优选为三进制、五进制、七进制或九进制等,这些进制不是常用的进制,可以降低被破解的概率。
在一个实施例中,映射模块702还用于根据预设字符库中字符与数值的映射关系,若待加密字符在预设字符库中映射的数值多于一个字节,则将映射的数值按字节进行分割,以获得第一预设进制的第一数值。
上述数据加密装置,先将待加密字符映射为第一预设进制的第一数值,而由于第二预设进制的基数大于第一预设进制的基数,这样用来表示第一预设进制的数值的数学符号必然可以用来表示第二预设进制的部分数值,因此可将第一数值作为第二预设进制的数值而将第一数值转化为第三预设进制的第二数值,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而高效地实现了对待加密字符进行加密。而且由于第二预设进制的基数小于第三预设进制的基数,则最终获得的加密数据是用较高基数的进制表示的,可节省存储空间。
如图8所示,在一个实施例中,第一预设进制为二进制;则加密模块704包括:密钥二进制串获取模块704a、异或运算模块704b和加密执行模块704c。
密钥二进制串获取模块704a,用于获取与第一数值等长的密钥二进制串。
第一数值为二进制数,密钥二进制串是指将密钥按照字节分割后转化为二进制的数值。密钥二进制串与第一数值等长,是指第一数值中数学符号的个数和密钥二进制串中数学符号的个数相等,使得两者可以做异或运算。其中密钥是事先设置的用于与第一数值进行异或运算的字符或字符串。
在一个实施例中,密钥二进制串获取模块704a用于获取密钥,判断密钥所占字节是否与待加密字符组成的待加密字符串所占字节相等,若是则将密钥按字节分割并转化为二进制的密钥二进制串;若否则将密钥截取或循环补偿为与待加密字符串所占字节相等后,将密钥按字节分割并转化为二进制的密钥二进制串。
本实施例中,密钥所占字节应当与待加密字符串所占字节相等,这样才能保证待加密字符按字节分割而获得第一数值,以及将密钥按字节分割并转化为二进制的密钥二进制串后,每个第一数值能够与相应的等长密钥二进制串进行异或运算,因此密钥二进制串获取模块704a用于先判断密钥所占字节是否与待加密字符组成的待加密字符串所占字节相等。
具体地,若待加密字符串所占字节等于密钥所占字节,则密钥二进制串获取模块704a可用于直接将密钥按字节分割并转化为二进制的密钥二进制串。若待加密字符串所占字节大于密钥所占字节,则密钥二进制串获取模块704a可用于通过循环补偿的方式修改密钥,使得待加密字符串所占字节等于密钥所占字节;其中循环补偿是指在密钥的前部或后部重复密钥自身或者自身的一部分。若待加密字符串所占字节小于密钥所占字节,则密钥二进制串获取模块704a可用于按照加密字符串的长度截取密钥的部分字符或字符串作为新的密钥。
异或运算模块704b,用于将第一数值与密钥二进制串进行异或运算后获得异或运算结果数值。
在一个实施例中,密钥二进制串获取模块704a用于获取新的与第一数值等长的密钥二进制串,将已获得的异或运算结果数值作为第一数值,异或运算模块704b用于将第一数值与密钥二进制串进行异或运算后获得异或运算结果数值,密钥二进制串获取模块704a和异或运算模块704b用于交替作用,以进行预设次数的迭代,从而获得最终的异或运算结果数值。这样使得加密更为可靠。解密时需要按照与加密时获取密钥二进制串的顺序相反的顺序获取密钥二进制串进行逐层解密。
加密执行模块704c,用于将异或运算结果数值作为第二预设进制的数值而将异或运算结果数值转化为第三预设进制的第二数值,获得加密数据。
获得异或运算结果后,加密执行模块704c用于将异或运算结果数值作为第二预设进制的数值而将异或运算结果数值转化为第三预设进制的第二数值,这样将异或加密技术与利用不同进制之间的数学符号的包含关系进行进制转化的加密技术相结合,使得加密更为可靠。
如图9所示,在一个实施例中,提供了一种数据解密装置,用于对根据上述任意实施例中的数据加密装置所获得的加密数据进行解密,该数据解密装置包括:加密数据划分模块902、第一中间数值转化模块904和解密模块906。
加密数据划分模块902,用于以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值;预设位数为将一字节的第一预设进制的数值当作第二预设进制的数值而转化为第三进制的数值的位数。
这里的加密数据为根据上述任意实施例中的数据加密装置所获得的加密数据。本实施例中的第一、第二、第三预设进制分别为与上述各个实施例的数据加密方法中的第一、第二、第三预设进制对应。
由于加密时被加密字符是以字节为单位进行加密的,因此解密时需要以预设位数为单位将加密数据划分为一个或多个第一中间数值。若被加密的字符仅占一个字节,则相应的第一中间数值为一个。这里的预设位数是将任意一字节的第一预设进制的数值当作第二预设进制的数值后,将该数值转化为第三进制的数值的位数。
第一中间数值转化模块904,用于将第一中间数值转化为第二预设进制的第二中间数值。
第一中间数值转化模块904可用于将第三预设进制的第一中间数值直接转化为第二预设进制的第二中间数值,也可以先将第三预设进制的第一中间数值转化为其它任意进制的数值后再转化为第二预设进制的第二中间数值。
解密模块906,用于将第二中间数值作为第一预设进制的数值后,根据预设字库中数值与字符的映射关系将第二中间数值映射为字符,获得解密的字符;其中,第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间。
预设字符库中预先设置了数值与字符的映射关系,预设字符库中预设的被映射的数值可以是第一预设进制的数值,这样解密模块906可用于直接将第一预设进制的中间数值映射为字符。预设字符库中预设的被映射的数值也可以是非第一预设进制的其它任意进制的数值,这样解密模块906可用于先将第一预设进制的中间数值转化为预设字符库中预设的被映射的数值的进制后,再根据预设字符库中数值与字符的映射关系映射为字符。
预设字符库可以是ASCII编码表、扩展ASCII编码表、Unicode编码表、或者UTF-8编码表等。本实施例中采用的预设字符库与上述各个实施例的数据加密方法中使用的预设字符库相同。
第二预设进制的基数介于第一预设进制的基数和第三预设进制的基数之间,是指第二预设进制的基数大于第一预设进制的基数,且第二预设进制的基数小于第三预设进制的基数。其中一个进制的基数是指表示该进制用来表示数值的所有互异的数学符号的个数。第二预设进制优选为三进制、五进制、七进制或九进制等,这些进制不是常用的进制,可以降低被破解的概率。
在一个实施例中,解密模块906还用于若被加密字符仅占用一个字节,则根据预设字库中数值与字符的映射关系,直接将作为第一预设进制的第二中间数值映射为字符;若被加密字符占用多个字节,则可根据被加密字符占用字节的个数将连续多个第二中间数值组合后,根据预设字库中数值与字符的映射关系将作为第一预设进制的多个第二中间数值的组合映射为字符,获得解密的字符。
上述数据解密装置,由于第二预设进制的基数小于第三预设进制的基数,这样加密数据本身所占的存储空间少。而将第三预设进制的加密数据以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值,再将第一中间数值转化为第二预设进制的第二中间数值,然后将该第二中间数值作为第一预设进制的数值后映射为字符,巧妙地利用不同进制之间的数学符号的包含关系进行进制转化,从而实现了高效地对采用上述数据加密方法获得的加密数据进行解密,使得加密数据是可以还原的。
如图10所示,在一个实施例中,第一预设进制为二进制;则解密模块906包括:获取模块906a、运算模块906b和解密执行模块906c。
获取模块906a,用于获取与第二中间数值等长的密钥二进制串。
第二中间数值为二进制数,密钥二进制串是指将密钥按照字节分割后转化为二进制的数值。密钥二进制串与第二中间数值等长,是指第二中间数值中数学符号的个数和密钥二进制串中数学符号的个数相等,使得两者可以做异或运算。其中密钥是事先设置的用于与第二中间数值进行异或运算的字符或字符串,密钥与密钥二进制串分别与上述各个实施例的数据加密方法中的密钥和密钥二进制串一致。
在一个实施例中,获取模块906a还用于获取密钥,判断加密数据的长度与预设位数的商是否与密钥所占字节的个数相等,若是则将密钥按字节分割并转化为二进制的密钥二进制串;若否则将密钥截取或循环补偿为与上述商相等后,将密钥按字节分割并转化为二进制的密钥二进制串。
本实施例中,密钥所占字节应当与被加密字符串所占字节相等,这样才能保证第二中间数值,以及将密钥按字节分割并转化为二进制的密钥二进制串后,每个第二中间数值都能够与相应的等长密钥二进制串进行异或运算,因此获取模块906a用于先判断加密数据的长度与预设位数的商是否与密钥所占字节的个数相等。
具体地,若加密数据的长度与预设位数的商等于密钥所占字节的个数,则获取模块906a可用于直接将密钥按字节分割并转化为二进制的密钥二进制串。若加密数据的长度与预设位数的商大于密钥所占字节的个数,则获取模块906a可用于通过循环补偿的方式修改密钥,使得被加密字符串所占字节等于密钥所占字节;其中循环补偿是指在密钥的前部或后部重复密钥自身或者自身的一部分。若加密数据的长度与预设位数的商小于密钥所占字节的个数,则获取模块906a可用于按照加密字符串的长度截取密钥的部分字符或字符串作为新的密钥。
运算模块906b,用于将第二中间数值作为第一预设进制的数值与密钥二进制串进行异或运算,获得运算结果数值。
运算模块906b用于将第二中间数值作为第一预设进制的数值后,将作为第一预设进制的第二中间数值与密钥二进制串进行异或运算,从而获得运算结果数值。
在一个实施例中,获取模块906a还用于按照与加密时获取密钥二进制串的顺序相反的顺序逐个获取密钥二进制串,运算模块906b用于将已获得的运算结果数值作为第二中间数值后,将第二中间数值作为第一预设进制的数值与密钥二进制串进行异或运算,获得运算结果数值。这样获取模块906a和运算模块906b交替作用,以进行预设次数的迭代,从而获得最终的运算结果数值。
解密执行模块906c,用于根据预设字符库中字符与数值的映射关系,将运算结果数值映射为字符,获得解密的字符。
获得运算结果数值后,解密执行模块906c用于根据预设字符库中数值与字符的映射关系,将运算结果数值映射为字符,最终获得解密的字符。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种数据加密方法,所述方法包括:
根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值;所述第一预设进制为二进制;
获取与所述第一数值等长的密钥二进制串;
将所述第一数值与所述密钥二进制串进行异或运算后获得异或运算结果数值;
将所述异或运算结果数值作为第二预设进制的数值而将所述异或运算结果数值转化为第三预设进制的第二数值,获得加密数据;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间。
2.根据权利要求1所述的方法,其特征在于,所述根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值,包括:
根据预设字符库中字符与数值的映射关系,若所述待加密字符在所述预设字符库中映射的数值多于一个字节,则将所述映射的数值按字节进行分割,以获得第一预设进制的第一数值。
3.一种数据解密方法,用于对根据权利要求1或2所述的数据加密方法所获得的加密数据进行解密,所述数据解密方法包括:
以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值;所述预设位数为将一字节的第一预设进制的数值当作第二预设进制的数值而转化为第三进制的数值的位数;所述第一预设进制为二进制;
将所述第一中间数值转化为第二预设进制的第二中间数值;
获取与所述第二中间数值等长的密钥二进制串;
将所述第二中间数值作为第一预设进制的数值与所述密钥二进制串进行异或运算,获得运算结果数值;
根据预设字符库中字符与数值的映射关系,将所述运算结果数值映射为字符,获得解密的字符;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间。
4.一种数据加密装置,其特征在于,所述装置包括映射模块和加密模块;
所述映射模块,用于根据预设字符库中字符与数值的映射关系,以字节为单位将待加密字符映射为第一预设进制的第一数值;所述第一预设进制为二进制;
所述加密模块,用于将所述第一数值作为第二预设进制的数值而将所述第一数值转化为第三预设进制的第二数值,获得加密数据;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间;
所述加密模块包括:
密钥二进制串获取模块,用于获取与所述第一数值等长的密钥二进制串;
异或运算模块,用于将所述第一数值与所述密钥二进制串进行异或运算后获得异或运算结果数值;
加密执行模块,用于将所述异或运算结果数值作为第二预设进制的数值而将所述异或运算结果数值转化为第三预设进制的第二数值,获得加密数据。
5.根据权利要求4所述的装置,其特征在于,所述映射模块还用于根据预设字符库中字符与数值的映射关系,若所述待加密字符在所述预设字符库中映射的数值多于一个字节,则将所述映射的数值按字节进行分割,以获得第一预设进制的第一数值。
6.一种数据解密装置,用于对根据权利要求4或5所述的数据加密装置所获得的加密数据进行解密,所述数据解密装置包括:加密数据划分模块、第一中间数值转化模块和解密模块;
所述加密数据划分模块,用于以预设位数为单位将第三预设进制的加密数据划分为一个或多个第一中间数值;所述预设位数为将一字节的第一预设进制的数值当作第二预设进制的数值而转化为第三进制的数值的位数;所述第一预设进制为二进制;
所述第一中间数值转化模块,用于将所述第一中间数值转化为第二预设进制的第二中间数值;
所述解密模块,用于将所述第二中间数值作为第一预设进制的数值后,根据预设字库中数值与字符的映射关系将所述第二中间数值映射为字符,获得解密的字符;
其中,所述第二预设进制的基数介于所述第一预设进制的基数和所述第三预设进制的基数之间;
所述解密模块包括:
获取模块,用于获取与所述第二中间数值等长的密钥二进制串;
运算模块,用于将所述第二中间数值作为第一预设进制的数值与所述密钥二进制串进行异或运算,获得运算结果数值;
解密执行模块,用于根据预设字符库中字符与数值的映射关系,将所述运算结果数值映射为字符,获得解密的字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410185427.3A CN105099652B (zh) | 2014-05-04 | 2014-05-04 | 数据加密、解密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410185427.3A CN105099652B (zh) | 2014-05-04 | 2014-05-04 | 数据加密、解密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105099652A CN105099652A (zh) | 2015-11-25 |
CN105099652B true CN105099652B (zh) | 2018-01-16 |
Family
ID=54579298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410185427.3A Active CN105099652B (zh) | 2014-05-04 | 2014-05-04 | 数据加密、解密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105099652B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105406960B (zh) * | 2015-12-20 | 2019-02-22 | 河南思维自动化设备股份有限公司 | 一种信息加密和解密的方法 |
CN108155985A (zh) * | 2017-06-29 | 2018-06-12 | 广东网金云计算有限公司 | 一种加解密方法、装置及用户终端 |
CN107832623B (zh) * | 2017-10-13 | 2020-05-08 | 微梦创科网络科技(中国)有限公司 | 坐标轨迹加密和解密的方法及*** |
CN109308420B (zh) * | 2018-08-22 | 2023-04-07 | 平安科技(深圳)有限公司 | 一种数据加密方法、终端设备及计算机可读存储介质 |
CN110138750A (zh) * | 2019-04-23 | 2019-08-16 | 上海数据交易中心有限公司 | 配置文件的加密方法、装置及***、存储介质、终端 |
CN113569534A (zh) * | 2020-04-29 | 2021-10-29 | 杭州海康威视数字技术股份有限公司 | 一种检测文档中乱码的方法及装置 |
CN111797416B (zh) * | 2020-07-02 | 2023-08-18 | 中国工商银行股份有限公司 | 加密数据的处理方法及装置 |
CN111740830B (zh) * | 2020-08-12 | 2020-12-11 | 科大讯飞(苏州)科技有限公司 | 信息加密、解密方法、装置、信息处理设备及存储介质 |
CN113076554B (zh) * | 2021-03-12 | 2022-10-11 | 广西东信易联科技有限公司 | 一种基于区块链的体检数据安全存储方法 |
CN113660253A (zh) * | 2021-08-12 | 2021-11-16 | 上海酷栈科技有限公司 | 一种基于远程桌面协议的终端控制器、方法及*** |
CN115795520B (zh) * | 2023-02-07 | 2023-04-21 | 济南霍兹信息科技有限公司 | 一种用于计算机***的数据管理方法 |
CN118133323B (zh) * | 2024-05-06 | 2024-07-19 | 成都赛力斯科技有限公司 | 数据处理方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1301002A (zh) * | 2000-12-12 | 2001-06-27 | 尹国兴 | 自然事物的编码与任意进制转换及其应用 |
CN1786900A (zh) * | 2005-10-28 | 2006-06-14 | 清华大学 | 基于改进的蒙哥马利算法的模乘器 |
CN101996298A (zh) * | 2009-08-14 | 2011-03-30 | 鸿富锦精密工业(深圳)有限公司 | 加密方法及与加密方法相对应的解密方法 |
CN103684760A (zh) * | 2012-09-24 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 通信的加密和解密的方法、装置及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060177065A1 (en) * | 2005-02-09 | 2006-08-10 | Wal-Mart Stores, Inc. | System and methods for encrypting data utilizing one-time pad key |
-
2014
- 2014-05-04 CN CN201410185427.3A patent/CN105099652B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1301002A (zh) * | 2000-12-12 | 2001-06-27 | 尹国兴 | 自然事物的编码与任意进制转换及其应用 |
CN1786900A (zh) * | 2005-10-28 | 2006-06-14 | 清华大学 | 基于改进的蒙哥马利算法的模乘器 |
CN101996298A (zh) * | 2009-08-14 | 2011-03-30 | 鸿富锦精密工业(深圳)有限公司 | 加密方法及与加密方法相对应的解密方法 |
CN103684760A (zh) * | 2012-09-24 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 通信的加密和解密的方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
《加密式单项数据压缩发》;戴振喜;《大众科技》;20101104(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105099652A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105099652B (zh) | 数据加密、解密方法和装置 | |
US8345876B1 (en) | Encryption/decryption system and method | |
CN107609418A (zh) | 文本数据的脱敏方法、装置、存储设备以及计算机设备 | |
CN103345609B (zh) | 一种文本加解密方法和加解密设备 | |
US20080165965A1 (en) | Method of two strings private key (symmetric) encryption and decryption algorithm | |
CN106599723A (zh) | 一种文件加密方法及装置、文件解密方法及装置 | |
CN110505054B (zh) | 一种基于动态白盒的数据处理方法、装置及设备 | |
CN107491317A (zh) | 一种基于异构加速平台的aes对称加解密方法及*** | |
CN110312054B (zh) | 图像的加解密方法、及相关装置、存储介质 | |
CN109861810A (zh) | 一种基于混沌块加密算法的数据加密方法及解密方法 | |
CN104732159A (zh) | 一种文件处理方法及装置 | |
CN106131049A (zh) | 一种数据传输加解密的方法 | |
CN109981249A (zh) | 基于拉链式动态散列和nlfsr的加密解密方法及装置 | |
CN102456108B (zh) | 一种ibus拼音码表的加密方法 | |
CN103942500B (zh) | 基于噪声的哈希密文再加密方法及再加密后的解密方法 | |
CN105184181A (zh) | 文件的加密方法、解密方法及装置 | |
CN110704854A (zh) | 针对文本数据保留格式的流式加密方法 | |
CN104518865A (zh) | 一种基于密码本的数据加密方法 | |
CN105281898A (zh) | 密钥生成装置及方法 | |
CN106357608A (zh) | 一种面向个人医疗健康数据的隐私数据加密及解密方法 | |
CN102222188A (zh) | 一种信息***用户密码的生成方法 | |
CN103326851B (zh) | 基于单片机的一种罗盘式加密解密方法 | |
Haryannto et al. | Implementation of nihilist cipher algorithm in securing text data with Md5 verification | |
Veeraragavan et al. | Enhanced encryption algorithm (EEA) for protecting users' credentials in public cloud | |
Torvi et al. | An unique data security using text steganography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |