发明内容
针对现有技术存在的问题,本发明提供了一种基于身份证号的无密钥加密解密方法、系统、终端、介质。
本发明是这样实现的,一种基于身份证号的无密钥加密解密方法,所述基于身份证号的无密钥加密解密方法包括:
步骤一,根据身份证特有的规则生成身份证号形成有限集合,对身份证号进行加密;
步骤二,将生成的密文作为关键字key,身份证号作为明文value存入redis缓存中;
步骤三,根据密文查找redis缓存,进行身份证号解密,即可得明文即身份证号。
进一步,步骤一中,所述对身份证号进行加密包括:
(1)将身份证号N作为DES加密算法的密钥,将身份证号N利用DES加密生成盐值S;
(2)将身份证号N等分成两组数据G1和G2,依次将G1、S、G2进行字符串拼接,得到临时数据T;
(4)将临时数据T进行SHA-256算法运算得到最终密文M。
进一步,步骤三中,所述对身份证号进行解密包括:
1)根据身份证号规则生成所有身份证号的明文形成有限集合,使用本发明加密方式对所有身份证号进行加密,得到密文和明文对,存入redis缓存;
2)密文作为关键字key到redis缓存中进行查找,得到身份证号明文。
进一步,所述加密模块包括:
盐值生成模块,用于将身份证号N作为DES加密算法的密钥,将身份证号N利用DES加密生成盐值S;
临时数据获取模块,用于将身份证号N等分成两组数据G1和G2,依次将G1、S、G2进行字符串拼接,得到临时数据T;
最终密文获取模块,用于将临时数据T进行SHA-256算法运算得到最终密文M。
进一步,所述解密模块包括:
缓存模块,用于根据身份证号规则生成所有身份证号的明文形成有限集合,使用加密方式对所有身份证号进行加密,得到密文和明文对,存入redis缓存;
身份证号明文获取模块,用于密文作为关键字key到redis缓存中进行查找,得到身份证号明文。
本发明另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
根据身份证特有的规则生成身份证号形成有限集合,对身份证号进行加密;
将生成的密文作为关键字key,身份证号作为明文value存入redis缓存中;根据密文查找redis缓存,进行身份证号解密,即可得明文即身份证号.
本发明另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
根据身份证特有的规则生成身份证号形成有限集合,对身份证号进行加密;
将生成的密文作为关键字key,身份证号作为明文value存入redis缓存中;
根据密文查找redis缓存,进行身份证号解密,即可得明文即身份证号。
本发明另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的基于身份证号的无密钥加密解密方法。
本发明另一目的在于提供一种服务器,所述服务器用于实现所述的基于身份证号的无密钥加密解密方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明使用DES和SHA-256两种方式对身份证号进行加密,使用身份证号明文和密文对到redis缓存中查找解密。既能保证敏感信息的安全性,又极大地提高了解密效率。
本发明用身份证号通过DES算法生成盐值,并且将身份证号等分成两组数据G1和G2,接着将G1、盐值、G2依次拼接用于混淆明文,生成临时数据T,利用SHA-256算法不可逆的特性,对临时数据T进行SHA-256运算,得到最终的密文,从而大大提升密文的安全性。
本发明利用redis缓存key-value的数据结构,且redis数据是存储在内存中,能迅速地根据密文查询到对应的明文,大大提升解密效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于身份证号的无密钥加密解密方法、系统、终端、介质,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于身份证号的无密钥加密解密方法包括以下步骤:
S101,根据身份证特有的规则生成身份证号形成有限集合,对身份证号进行加密;
S102,将生成的密文作为关键字key,身份证号作为明文value存入redis缓存中;
S103,根据密文查找redis缓存,进行身份证号解密,即可得明文即身份证号。
如图2所示,步骤S101中,本发明实施例提供的对身份证号进行加密包括:
将身份证号N作为DES加密算法的密钥,将身份证号N利用DES加密生成盐值S;将身份证号N等分成两组数据G1和G2,依次将G1、S、G2进行字符串拼接,得到临时数据T;将临时数据T进行SHA-256算法运算得到最终密文M。
如图3所示,步骤S103中,本发明实施例提供的对身份证号进行解密包括:
根据身份证号规则生成所有身份证号的明文形成有限集合,使用本发明加密方式对所有身份证号进行加密,得到密文和明文对,存入redis缓存;密文作为关键字key到redis缓存中进行查找,得到身份证号明文。
如图4所示,本发明实施例提供的基于身份证号的无密钥加密解密系统包括:
加密模块1,用于根据身份证特有的规则生成身份证号形成有限集合,对身份证号进行加密;
密文存储模块2,用于将生成的密文作为关键字key,身份证号作为明文value存入redis缓存中;
解密模块3,用于根据密文查找redis缓存,进行身份证号解密,即可得明文即身份证号。
下面结合具体实施例对本发明的技术效果作进一步描述。
实施例1:
本发明采用以下技术方案实现:一种针对身份证号的无密钥加密、解密方法,包括身份证号加密流程和身份证号解密流程;
所述身份证号加密流程包括以下步骤:
步骤一:将身份证号N作为DES加密算法的密钥,将身份证号N利用DES加密生成盐值S;
步骤二:将身份证号N等分成两组数据G1和G2,依次将G1、S、G2进行字符串拼接,得到临时数据T;
步骤三:将临时数据T进行SHA-256算法运算得到最终密文M,加密过程结束;
本发明提供一种加密模块包括:
盐值生成模块,用于将身份证号N作为DES加密算法的密钥,将身份证号N利用DES加密生成盐值S;
临时数据获取模块,用于将身份证号N等分成两组数据G1和G2,依次将G1、S、G2进行字符串拼接,得到临时数据T;
最终密文获取模块,用于将临时数据T进行SHA-256算法运算得到最终密文M。
所述身份证号解密流程包括以下步骤:
步骤一:根据身份证号规则生成所有身份证号的明文形成有限集合,使用本发明加密方式对所有身份证号进行加密,得到密文和明文对,存入redis缓存,该步骤作为初始化只执行一次;
步骤二:密文作为关键字key到redis缓存中进行查找,得到身份证号明文,解密过程结束。
本发明提供一种解密模块包括:
缓存模块,用于根据身份证号规则生成所有身份证号的明文形成有限集合,使用加密方式对所有身份证号进行加密,得到密文和明文对,存入redis缓存;
身份证号明文获取模块,用于密文作为关键字key到redis缓存中进行查找,得到身份证号明文。
实施例2:
如图2所示,所述身份证号加密流程包括以下步骤:
步骤一:将身份证号N作为DES加密算法的密钥,将身份证号N利用DES加密生成盐值S;
步骤二:将身份证号N等分成两组数据G1和G2,依次将G1、S、G2进行字符串拼接,得到临时数据T;
步骤三:将临时数据T进行SHA-256算法运算得到最终密文M,加密过程结束;
DES加密算法具体包含4个操作:初始置换、生成子密钥、迭代过程、逆置换。初始置换是将原始明文经过IP置换表处理,IP置换表中的数据指的是位置;生成子密钥是指DES加密共执行16次迭代,每次迭代过程的数据长度为48位,因此需要16个48位的子密钥来进行加密;迭代过程是指设Li(32位)和Ri(32位)为第i次迭代结果的左半部分与右半部分,子密钥Ki为第i轮的48位加密密钥。定义运算规则:
Li=Ri-1;Ri=Li⊕f(Ri-1,Ki);逆置换是指将初始置换进行16次的迭代,即进行16层的加密变换,得到L16和R16,将此作为输入块,进行逆置换得到最终的密文输出块。逆置换是初始置换的逆运算。从初始置换规则中可以看到,原始数据的第1位置换到了第40位,第2位置换到了第8位。则逆置换就是将第40位置换到第1位,第8位置换到第2位,以此类推,最终得到密文。
SHA-256算法具体包含以下几个步骤:
步骤a:附加填充比特。
对报文进行填充使报文长度与448模512同余(长度=448mod 512),
填充的比特数范围是1到512,填充比特串的最高位为1,其余位为0。
就是先在报文后面加一个1,再加很多个0,直到长度满足mod 512=448.
为什么是448,因为448+64=512.第二步会加上一个64bit的原始报文的长度信息。
步骤b:附加长度值。
将用64-bit表示的初始报文(填充前)的位长度附加在步骤1的结果
后(低位字节优先)。
步骤c:初始化缓存。
使用一个256-bit的缓存来存放该散列函数的中间及最终结果。
该缓存表示为A=0x6A09E667,B=0xBB67AE85,C=0x3C6EF372,D=0xA54FF53A,
E=0x510E527F,F=0x9B05688C,G=0x1F83D9AB,H=0x5BE0CD19。
步骤d:处理512-bit(16个字)报文分组序列。
该算法使用了六种基本逻辑函数,由64步迭代运算组成。每步都以256-bit缓存值ABCDEFGH为输入,然后更新缓存内容。每步使用一32-bit常数值Kt和一个32-bitWt。
步骤e:所有的512-bit分组处理完毕后,对于SHA-256算法最后一个分组产生的输出便是256-bit的报文摘要。
如图3所示,所述身份证号解密流程包括以下步骤:
步骤一:利用身份证号有穷性,根据身份证号规则生成所有身份证号的明文,使用本发明加密方式对所有身份证号进行加密,得到密文和明文对,存入redis缓存,该步骤作为初始化只执行一次;
步骤二:密文作为关键字key到redis缓存中进行查找,redis中的数据是存入内存中的,一来内存中的数据查询非常迅速,二来内存中的数据无法被窃取,这样既能提升查询效率,又能保证安全性。最终查询到的结果即为身份证号明文,解密过程结束。
所述redis作为一种缓存技术,是采用key-value这种数据结构实现的。而与传统key-value的技术相比,查询性能极高是它最大的优势,此外,redis还具备原子性、分布式等特点。基于以上特征,redis很适合作为本发明加解密的数据结构。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。