加密方法、装置、终端设备及存储介质与流程

文档序号:16245854发布日期:2018-12-11 23:34阅读:190来源:国知局
加密方法、装置、终端设备及存储介质与流程

本发明涉及金融领域,尤其涉及一种加密方法、装置、终端设备及存储介质。

背景技术

目前,在金融行业中,金融公司利用不同的业务系统存储不同的数据,当用户对所述数据进行加密时,需要输入加密法规矩长度的密码,同时,输入的密码为明文,容易泄露信息,从而导致加密灵活性低。



技术实现要素:

本发明实施例提供一种加密方法、装置、终端设备及存储介质,以解决加密灵活性低的问题

第一方面,本发明实施例提供一种加密方法,包括:

获取密码信息;

获取待加密的数据信息;

通过第一预设加密法对所述密码信息进行加密处理,得到目标密钥;

按照第二预设加密法的密钥规格长度从所述目标密钥中提取全部或部分的连续密钥信息作为加密密钥;

通过所述第二预设加密法,采用所述加密密钥对所述待加密的数据信息进行加密处理,得到密文;

通过预设的发送方式将所述密文发送给接收方。

第二方面,本发明实施例提供一种加密装置,包括:

第一获取模块,用于获取密码信息;

第二获取模块,用于获取待加密的数据信息;

第一加密模块,用于通过第一预设加密法对所述密码信息进行加密处理,得到目标密钥;

提取模块,用于按照第二预设加密法的密钥规格长度从所述目标密钥中提取全部或部分的连续密钥信息作为加密密钥;

第二加密模块,用于通过所述第二预设加密法,采用所述加密密钥对所述待加密的数据信息进行加密处理,得到密文;

发送模块,用于通过预设的发送方式将所述密文发送给接收方。

第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述加密方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述书面文件生成方法的步骤。

本发明实施例所提供的加密方法、装置、终端设备及存储介质中,通过获取密码信息,获取待加密的数据信息,通过第一预设加密法对密码信息进行加密处理,得到目标密钥,按照第二预设加密法的密钥规格长度从目标密钥中提取全部或部分的连续密钥信息作为加密密钥,通过第二预设加密法,采用加密密钥对待加密的数据信息进行加密处理,得到密文,通过预设的发送方式将密文发送给接收方。通过采用第一预设加密法对明文密码信息进行加密处理,得到目标密钥,然后,从目标密钥中提取符合第二预设加密法的密钥规格长度的密钥信息作为加密密钥,从而密码信息可以为任意长度,接下来,将待加密的数据信息经过加密处理,得到密文,进而提高了加密的灵活性和效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例1提供的加密方法的实现流程图;

图2是本发明实施例1提供的加密方法中步骤s3的实现流程图;

图3是本发明实施例1提供的加密方法中步骤s35的实现流程图;

图4是本发明实施例1提供的加密方法中步骤s354的实现流程图;

图5是本发明实施例1提供的加密方法中通过预设的编码方法对密文进行编码的实现流程图;

图6是本发明实施例1提供的加密方法中步骤s7的实现流程图;

图7是本发明实施例2中提供的加密装置的示意图;

图8是本发明实施例4中提供的终端设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

请参阅图1,图1示出了本实施例提供的加密方法的实现流程。该加密方法应用在金融行业。详述如下:

s1:获取密码信息。

在本实施例中,密码信息会暂时保存在临时存储区。优选地,密码数据库用来保存密码信息。

需要说明的是,临时存储区是用来存储临时数据,每次取出临时数据时,临时存储区都被清零。

具体地,将加密方通过送达方式送到临时存储区中的密码信息提取出来,并将该密码信息保存到密码数据库中。

需要说明的是,加密方可以是用户终端,也可以是智能设备,送达方式可以为输入方式、传输方式等,传输方式可以为电波传输、其他物理介质传输或交通工具运输等,密码信息可以是字母、数字、符号及字母与数字的组合等,加密方、送达方式、传输方式和密码信息的具体内容,可以根据实际应用进行设定,此处不做限制。密码信息长度可以为一个以上字符长度。

s2:获取待加密的数据信息。

在本实施例中,数据信息保存在信息数据库中。

需要说明的是,待加密的数据信息可以为从信息数据库中提取出来的数据信息或从临时数据中提取出的临时数据,其中,该临时数据由加密方通过送达方式传输的数据。

具体地,将信息数据库用中的待加密的数据信息提取出来,并将待加密的数据信息保存到待加密信息数据库中。

需要说明的是,将其保存到待加密信息数据库中,是为了后续对待加密的数据信息进行加密时,方便提取。

待加密的数据信息可以为文字、声音、图片或图像视频等,待加密的数据信息的具体内容,以根据实际应用进行设定,此处不做限制。

s3:通过第一预设加密法对密码信息进行加密处理,得到目标密钥。

在本实施例中,第一预设加密法可以为单向加密法或双向加密法等,其中,单向加密法是指通过对数据进行摘要计算生成密文的方法,双向加密是指可逆加密,即生成密文后,在需要的时候可以反解为明文的方法,单向加密法可以为md5、sha-0或hmac等,双向加密法可以为des、3des或rsa等,第一预设加密法、单向加密法和双向加密法的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,首先从密码数据库中提取密码信息,然后采用单向加密法或双向加密法等对密码信息进行加密处理,得到目标密钥,并将目标密钥保存到目标密钥数据库中。

s4:按照第二预设加密法的密钥规格长度从目标密钥中提取全部或部分的连续密钥信息作为加密密钥。

在本实施例中,第二预设加密法可以为单向加密法或双向加密法等,密钥规格长度是指采用第二预设加密法进行加密数据信息时规定的密钥长度,密钥规格长度可以为16位、24位或32位等,第二预设加密法和密钥规格长度的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,按照第二预设加密法的密钥规格长度,首先从目标密钥数据库中提取目标密钥,然后按照第二预设加密法的密钥规格长度从目标密钥中提取全部或部分的连续密钥信息作为加密密钥,并将该加密密钥保存到加密密钥数据库中。

需要说明的是,部分的连续密钥信息可以是全部密钥信息中的前面部分、中间部分或后面部分的连续密钥信息。

为了更好地理解步骤s4,下面通过一个例子进行说明,具体表述如下:

例如,假设目标密钥数据库中为a数据库,目标密钥为603f52d844017e83ca267751fee5b61b,第二预设加密法的密钥规格长度为32位或24位,加密密钥为603f52d844017e83ca267751fee5b61b、603f52d844017e83ca267751、52d844017e83ca267751fee5或44017e83ca267751fee5b61b,加密密钥数据库为b数据库,则首先从a数据库中提取603f52d844017e83ca267751fee5b61b,然后按照32位从603f52d844017e83ca267751fee5b61b中提取全部作为加密密钥,并将603f52d844017e83ca267751fee5b61b保存到b数据库中,或者按照24位从603f52d844017e83ca267751fee5b61b中提取03f52d844017e83ca267751、52d844017e83ca267751fee5或44017e83ca267751fee5b61b作为加密密钥,并将03f52d844017e83ca267751、52d844017e83ca267751fee5或44017e83ca267751fee5b61b保存到b数据库中。

s5:通过第二预设加密法,采用加密密钥对待加密的数据信息进行加密处理,得到密文。

在本实施例中,密文是指经过加密后的数据信息。

具体地,通过第二预设加密法,采用加密密钥对待加密的数据信息进行加密处理,得到密文,并将密文保存到密文数据库中。

为了更好地理解步骤s5,下面通过一个例子进行说明,具体表述如下:

例如,假设第二预设加密法为3des,加密密钥为603f52d844017e83ca267751fee5b61b,待加密的数据信息为“爱我中华!!!”,密文数据库为d数据库,则通过3des,采用603f52d844017e83ca267751fee5b61b对“爱我中华!!!”进行加密处理,得到“cgdyspsm3arj10x8kp9rma==”,并将“cgdyspsm3arj10x8kp9rma==”保存到d数据库中。

s6:通过预设的发送方式将密文发送给接收方。

在本实施例中,预设的发送方式可以为电波发送、其他物理介质发送或交通工具运送等,接收方可以为用户终端或智能设备等,接收方和预设的发送方式的具体内容,以根据实际应用进行设定,此处不做限制。优选地,目标密文保存在目标密文数据库中。

具体地,首先从目标密文数据库中将目标密文提取出来,然后将密文发送给接收方。

在图1对应的实施例中,通过获取密码信息,获取待加密的数据信息,通过第一预设加密法对密码信息进行加密处理,得到目标密钥,按照第二预设加密法的密钥规格长度从目标密钥中提取全部或部分的连续密钥信息作为加密密钥,通过第二预设加密法,采用加密密钥对待加密的数据信息进行加密处理,得到密文,通过预设的发送方式将密文发送给接收方。通过采用第一预设加密法对明文密码信息进行加密处理,得到目标密钥,然后,从目标密钥中提取符合第二预设加密法的密钥规格长度的密钥信息作为加密密钥,从而密码信息可以为任意长度,接下来,将待加密的数据信息经过加密处理,得到密文,进而提高了加密的灵活性和效率。

接下来,在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s3的具体实现方法进行详细说明。

请参阅图2,图2示出了步骤s3的具体实现流程,详述如下:

s31:按照预设的填充方式将密码信息填充至预设长度,得到目标密码信息。

在本实施例中,预设的填充方式可以为首先将密码信息转换为预设进制,得到转换后的密码信息,然后在转换后的密码信息的前面或后面填充p个1、0或1与0的组合等,得到第一填充密码信息,接下来,在第一填充密码信息的前面或后面填充的密码信息长度,密码信息长度以q个bit长度来表示。预设长度可以为512bit或1024bit等,其中p>1,q>1。

需要说明的是,预设进制可以为二进制、八进制或十六进制等,预设的填充方式、预设长度和预设进制的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,按照预设的填充方式将已经从密码数据库中提取到的密码信息填充至预设长度,得到目标密码信息,并将目标密码信息保存到目标密码信息数据库中。

为了更好地理解步骤s31,下面通过一个例子进行说明,具体表述如下:

例如,假设密码信息为“jklmn”,预设长度为512bit,预设的填充方式为首先将密码信息转换为十六进制,得到转换后的密码信息,然后在转换后的密码信息的后面填充1个1与407个0的组合,得到第一填充密码信息,接下来,在第一填充密码信息的后面填充密码信息长度,其中密码信息长度以64个bit长度来表示,密码数据库为e数据库,目标密码信息数据库为f数据库,则首先将“jklmn”转换为十六进制,得到“6a6b6c6d6e”,然后在“6a6b6c6d6e”的后面填充1个1与407个0的组合,得到6a6b6c6d6e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,接下来,在6a6b6c6d6e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000的后面填充0x28,其中0x28以64个bit长度来表示,得到6a6b6c6d6e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000,并将6a6b6c6d6e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000保存到f数据库中。

s32:按照第一预设的分组方式对目标密码信息进行分组,得到m组密钥分组,其中,m>0。

在本实施例中,第一预设的分组方式可以为将数据按照等份或非等份进行分组,第一预设的分组方式的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,按照等份或非等份对目标密码信息进行分组,得到m组密钥分组,并将密钥分组保存到密钥分组数据库中,其中,m>0。

s33:按照第二预设的分组方式对m组密钥分组中的每组密钥分组分别进行分组,得到m*n组第一密钥子分组,其中,n>0。

在本实施例中,第二预设的分组方式可以为将数据按照等份或非等份进行分组,第二预设的分组方式的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,首先从密钥分组数据库中提取m组密钥分组中的所有密钥分组,然后按照等份或非等分对每组密钥分组分别进行分组,得到m*n组第一密钥子分组,并将第一密钥子分组保存到第一密钥子分组数据库中,其中,n>0。

为了更好地理解步骤s33,下面通过一个例子进行说明,具体表述如下:

例如,假设密钥分组组数为1,密钥分组为6a6b6c6d6e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000,第二预设的分组方式为将数据按照等份进行分成16组,1*16组第一密钥子分组组名分别为g0、g1、g2、g3、g4、g5、g6、g7、g8、g9、g10、g11、g12、g13、g14和g15,第一密钥子分组为h数据库,则对6a6b6c6d6e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000按照等份进行分成1*16组第一密钥子分组分别为g0:6a6b6c6d、g1:6e8000、g2:00000000、g3:00000000、g4:00000000、g5:00000000、g6:00000000、g7:00000000、g8:00000000、g9:00000000、g10:00000000、g11:00000000、g12:00000000、g13:00000000、g14:28000000和g15:00000000,并将g0:6a6b6c6d、g1:6e8000、g2:00000000、g3:00000000、g4:00000000、g5:00000000、g6:00000000、g7:00000000、g8:00000000、g9:00000000、g10:00000000、g11:00000000、g12:00000000、g13:00000000、g14:28000000和g15:00000000保存到h数据库中。

s34:按照预设的复制方式对m*n组密钥子分组中的每组第一密钥子分组进行复制,得到m*n*l组第二密钥子分组,其中,l>0。

在本实施例中,预设的复制方式可以为一次复制一个数据或一次复制两个及以上数据等,预设的复制方式的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,首先从第一密钥子分组数据库中提取m*n组密钥子分组中的所有第一密钥子分组,然后按照一次复制m*n组第一密钥子分组方式进行复制,得到m*n*l组第二密钥子分组,并将m*n*l组第二密钥子分组保存到第二密钥子分组数据库中,其中,l>0。

s35:根据m*n*l组第二密钥子分组中的每组第二密钥子分组采用第一预设的算法,得到初步密钥。

在本实施例中,第一预设的算法可以为算术运算或逻辑运算等,第一预设的算法的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,提取第二密钥子分组数据库中的m*n*l组第二密钥子分组采用算术运算或逻辑运算,得到初步密钥。

s36:按照预设的输出方式将初步密钥输出,得到目标密钥。

在本实施例中,预设的输出方式可以为从内存中输出或从光盘中输出等,预设的输出方式的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,按照从内存中输出或从光盘中输出等方式将初步密钥输出,得到目标密钥。

为了更好地理解步骤s36,下面通过一个例子进行说明,具体表述如下:

例如,假设初步密钥为:a为0xd8523f60、b为0x837e0144、c为0x517726ca和d为0x1bb6e5fe,当前计算机模式为小端模式,则a、b、c和d在内存中的排列为a:603f52d8、b:44017e83、c:ca267751和d:fee5b61b,然后将a、b、c和d从低地址到高地址输出,得到603f52d844017e83ca267751fee5b61b。

在图2对应的实施例中,通过按照预设的填充方式将密码信息填充至预设长度,得到目标密码信息,按照第一预设的分组方式对目标密码信息进行分组,得到m组密钥分组,按照第二预设的分组方式对每组密钥分组分别进行分组,得到m*n组第一密钥子分组,按照预设的复制方式对所述m*n组密钥子分组进行复制,得到m*n*l组第二密钥子分组,然后,根据第二密钥子分组采用第一预设的算法,得到初步密钥,按照预设的输出方式将初步密钥输出,得到目标密钥,从而将明文密码信息转换为不可逆转的密钥信息,进而提高了加密的安全性。

接下来,在图2对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s35的具体实现方法进行详细说明。

请参阅图3,图3示出了步骤s35的具体实现流程,详述如下:

s351:获取按照前后顺序排列的m*n*l组第二密钥子分组中的排序最前1组第二密钥子分组作为当前数组。

具体地,首先从第二密钥子分组数据库中提取m*n*l组第二密钥子分组,然后提取按照前后顺序排列的m*n*l组第二密钥子分组中的排序最前1组第二密钥子分组作为当前数组,并将当前数组保存到当前数组数据库中。

为了更好地理解步骤s351,下面通过一个例子进行说明,具体表述如下:

例如,假设第二密钥子分组数据库为p数据库,m为1,n为16,l为4,则m*n*l=64,64组第二密钥子分组为6a6b6c6d6e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000006a6b6c6d6e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000006a6b6c6d6e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000006a6b6c6d6e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000,当前数组数据库为q数据库,则首先从p数据库中提取64组第二密钥子分组,然后提取按照前后顺序排列的64组第二密钥子分组中的排序最前1组6a6b6c6d作为当前数组,并将当前数组保存到q数据库中。

s352:获取i个不同的数值作为当前中间量,其中i>0。

本实施例中,常量是指不变化的量。

具体地,从不同的常量中提取i个不同的数值作为当前中间量,并将当前中间量保存到当前中间量数据库中。

s353:根据当前数组从两个以上的第一预设的算法中确定出当前算法。

具体地,根据当前数组从两个以上的第一预设的算法中确定出一个第一预设的算法,并将该第一预设的算法作为当前算法,其中,当前数组与第一预设的算法有对应关系。

s354:根据当前中间量和当前数组采用当前算法得到临时密钥。

具体地,提取当前中间量数据库中的当前中间量和当前数组数据库中的当前数组采用当前算法得到临时密钥,并将临时结果保存到临时结果数据库中。

s355:判断当前数组是否为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后1组第二密钥子分组。

具体地,判断当前数组是否为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后1组第二密钥子分组,也即,将当前数组与按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后1组第二密钥子分组进行对比,分析对比结果是否一致。

s356:若当前数组为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组,则根据临时密钥和i个不同的数值采用第二预设的算法进行计算,得到初步密钥。

本实施例中,i是正整数。

具体地,若当前数组为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组,也即,若当前数组与按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后1组第二密钥子分组一致,则根据临时密钥和i个不同的数值采用第二预设的算法进行计算,得到初步密钥。

需要说明的是,第二预设的算法可以为算术运算、逻辑运算或关系运算等,第三预设的算法的具体内容,以根据实际应用进行设定,此处不做限制。

s357:若当前数组不是按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组,则获取排序最前1组第二密钥子分组的下1组第二密钥子分组作为当前数组,并且确定临时密钥为当前中间量,返回执行步骤s354。

具体地,若当前数组不是按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组,也即,若当前数组与按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组不一致,则获取排序最前1组第二密钥子分组的下1组第二密钥子分组作为当前数组,并且确定临时密钥作为当前中间量,返回执行步骤s354。

在图3对应的实施例中,通过获取按照前后顺序排列的所述m*n*l组第二密钥子分组中的排序最前1组第二密钥子分组作为当前数组,获取i个不同的数值作为当前中间量,获取当前数组从两个以上的第一预设的算法中确定出当前算法,根据当前中间量和当前数组采用当前算法得到临时结果,判断当前数组是否为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后1组第二密钥子分组,若是,则根据临时结果和i个不同的数值采用第二预设的算法,得到初步密钥,若否,则获取排序最前1组第二密钥子分组的下1组第二密钥子分组作为当前数组,并且确定临时结果为当前中间量,返回执行根据当前中间量和当前数组采用当前算法得到临时结果的步骤,从而针对每个不同的明文密码信息,将该明文密码信息经过加密处理,得到该明文密码信息对应的唯一的加密密码信息,进而提高了破解密码信息的难度,提高了加密的安全性。

接下来,在图3对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s354的具体实现方法进行详细说明。

请参阅图4,图4示出了步骤s354的具体实现流程,详述如下:

s3541:采用预设的操作函数和预设的操作函数对应的当前中间量中的j个数值进行计算,得到第一中间密钥,其中,i>j>0。

在本实施例中,预设的操作函数具体可以为f(x,y,z)=(x&y)|((~x)&z)或g(x,y,z)=(x&z)|(y&(~z)),其中,&是指“与”运算,|是指“或”运算,~是指“非”运算,^是指“异或”运算,预设的操作函数的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,采用预设的操作函数和预设的操作函数对应的当前中间量中的j个数值进行运算,得到第一中间密钥,并将第一中间密钥保存到第一中间密钥数据库中,其中,i>j>0。

为了更好地理解步骤s3541,下面通过一个例子进行说明,具体表述如下:

例如,假设预设的操作函数为f(x,y,z)=(x&y)|((~x)&z),i为4,j为3,当前中间量为a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210,第一中间密钥数据库为u数据库,则采用f(x,y,z)=(x&y)|((~x)&z)和f(x,y,z)=(x&y)|((~x)&z)对应的4个a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210中的3个b=0x89abcdef,c=0xfedcba98,d=0x76543210进行运算,得到0xfedcba98,并将0xfedcba98保存到u数据库中。

s3542:将第一中间密钥、k个数值中的一个以上数值、一个以上当前数组和预设的常数的总和进行向左或向右循环移预设位,得到第二中间密钥,其中,k为i与j的差的绝对值。

在本实施例中,预设位可以为1、2或5等,预设的常数可以为0x12124567、0x12127766或0x99885656等,预设位和预设的常数的具体内容,以根据实际应用进行设定,此处不做限制。k为正整数,是指i与j的差的绝对值。

具体地,首先从第一中间密钥数据库中提取第一中间密钥,从密钥子分组数据库中提取当前数组,然后将第一中间密钥、k个数值中的一个以上数值、一个及以上当前数组和预设的常数的总和进行向左或向右循环移预设位,得到第二中间密钥,并将第二中间密钥保存到第二中间密钥数据库中。

为了更好地理解步骤s3542,下面通过一个例子进行说明,具体表述如下:

例如,继续以步骤s3531中的例子进行说明,假设密钥子分组数据库为a数据库,当前数组为0x6a6b6c6d,4-3=1,1个数值为0x01234567,预设的常数为0xd76aa478,预设位为7,第二中间密钥数据库为b数据库,则将0xfedcba98、0x01234567、0x6a6b6c6d和0xd76aa478的总和0x00007f6e<<7,得到0x003fb700,并将0x003fb700保存到b数据库。

s3543:根据第二中间密钥与预设操作函数对应的当前中间量中的一个以上的数值采用第三预设算法进行计算得到临时密钥。

在本实施例中,第三预设算法可以为算术运算或关系运算等,第四预设算法的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,首先从第二中间密钥数据库中将第二中间密钥提取出来,然后根据第二中间密钥与预设操作函数对应的当前中间量中的一个以上的数值采用第三预设算法进行计算得到临时密钥。

在图4对应的实施例中,通过采用预设的操作函数和预设的操作函数对应的当前中间量中的j个数值进行计算,得到第一中间密钥,将第一中间密钥、k个数值中的一个以上数值、一个以上当前数组和预设的常数的总和进行向左或向右循环移预设位,得到第二中间密钥,根据第二中间密钥与预设操作函数对应的当前中间量中的一个以上的数值采用第三预设算法进行计算得到临时密钥。从而使得明文密码信息中的每个字符经过复杂的算术运算和逻辑运算转换为不可逆推的字符信息,进而提高了密钥的安全性。

接下来,在图4对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s6中提及的将目标密文发送给接收方之前,如图5所示,该加密方法还包括:

s7:通过预设的编码方法对密文进行编码,得到编码后的密文。

本实施例中,编码后的密文是指经过预设的编码方法编码后的密文。预设的编码方法是指网络编码方法,其中,网络编码,是指在网络中的各个节点上对各条信道上收到的信息进行线性或者非线性的处理,然后转发给下游节点的方法。网络编码方法可以为base64、7unicode或utf-8等,网络编码方法的具体内容,可以根据实际应用进行设定,此处不做限制。

具体地,首先从密文数据库中提取出密文,然后通过预设的编码方法将密文进行编码,得到编码后的密文,并将编码后的密文保存到编码数据库中。

为了更好地理解步骤s7,下面通过一个例子进行说明,具体表述如下:

例如,假设密文数据库为e数据库,密文为“cgdyspsm3arj10x8kp9rma==”,预设的编码方法为base64,编码数据库为f数据库,则首先从e数据库中提取出“cgdyspsm3arj10x8kp9rma==”,然后通过base64将“cgdyspsm3arj10x8kp9rma==”进行编码,得到“q2dkexnwu00zyvjkmtb4ogtqovjtqt09”,并将“q2dkexnwu00zyvjkmtb4ogtqovjtqt09”保存到f数据库中。

在图5对应的实施例中,通过预设的编码方法对密文进行编码,从而得到安全的网络传输的目标密文,进而提高了加密的安全性。

接下来,在图5对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s7的具体实现方法进行详细说明。

请参阅图6,图6示出了步骤s7的具体实现流程,详述如下:

s71:按照预设的拆分方式将密文拆分为单个字符的集合。

具体地,按照预设的拆分方式将密文数据库中的密文拆分为单个字符的集合。

需要说明的是,预设的拆分方式可以为从先后顺序单个字符拆分或每次对半拆分等,预设的拆分方式的具体内容,以根据实际应用进行设定,此处不做限制。

s72:按照预设的补充方式对每个字符补充预设个零,得到目标字符。

具体地,按照预设的补充方式对每个字符补充预设个零,得到目标字符。

需要说明的是,预设的补充方式可以为在字符前面补充或在字符后面补充等,预设个零可以为2个零或5个零等,预设的补充方式和预设个零的具体内容,以根据实际应用进行设定,此处不做限制。

s73:按照预设字符表将每个目标字符转换为对应的编码字符,预设字符表记载了基于预设的编码方法的目标字符与编码字符之间的对应关系。

具体地,按照预设字符表将每个目标字符转换为对应的编码字符,预设字符表记载了基于预设的编码方法的目标字符与编码字符之间的对应关系。

s74:按照预设的拼接方式将每个编码字符拼接起来,得到编码后的密文。

具体地,按照预设的拼接方式将每个编码字符拼接起来,得到编码后的密文,并将目标密文保存到目标密文数据库中。

在图6对应的实施例中,通过按照预设的拆分方式将密文拆分为单个字符的集合,按照预设的补充方式对每个字符补充预设个零,得到目标字符,按照预设字符表将每个目标字符转换为对应的编码字符,预设字符表记载了基于预设的编码方法的目标字符与编码字符之间的对应关系,按照预设的拼接方式将每个编码字符拼接起来,得到编码后的密文,通过预设的拆分方式将密文拆分为单个字符,再每个字符转为为预设字符表中的编码字符,从而得到由单个编码字符组合成的编码后的密文,进而提高了密文传输的安全性。

在本实施例中,加密方法存在对应的解密方法,解密方法的具体实现流程,详述如下:

s101:接收密文。

在本实施例中,可以通过预设的接收方式接收发送方发来的密文,预设的接收方式可以为电波接收或其他物理介质接收等,发送方可以为用户终端或智能设备等,发送方和预设的接收方式的具体内容,以根据实际应用进行设定,此处不做限制。

具体地,通过预设的接收方式接收发送方的密文。

s102:按照预设的拼接方式对应的拆分方式将密文进行拆分,得到每个编码字符。

在本实施例中,预设的拼接方式存在对应的拆分方式。

具体地,按照预设的拼接方式对应的拆分方式将密文进行拆分,得到每个编码字符。

s103:按照所述预设字符表将每个编码字符转换为对应的目标字符。

在本实施例中,预设的编码方法存在对应的解码方法,预设的编码方法在上述加密法中已经描述,具体参考加密法实施例内容,为避免重复,这里不再赘述。

具体地,按照所述预设字符表将每个编码字符转换为对应的目标字符,其中,预设字符表记载了编码字符与目标字符之间的对应关系,该编码字符是指基于预设的编码方法对应的解码方法的编码字符。

s104:按照预设的补充方式对应的去除方式对每个目标字符去除所述预设个零,得到每个字符。

在本实施例中,预设的补充方式存在对应的去除方式,预设的补充方式,在上述加密法中已经描述,具体参考加密法实施例内容,为避免重复,这里不再赘述。

具体地,按照预设的补充方式对应的去除方式对每个目标字符去除所述预设个零,得到每个字符。

s105:按照预设的拆分方式对应的拼接方式将每个字符拼接为解码后的密文。

在本实施例中,预设的拆分方式存在对应的拼接方式,预设的拆分方式在上述加密法中已经描述,具体参考加密法实施例内容,为避免重复,这里不再赘述。

具体地,按照预设的拆分方式对应的拼接方式将每个字符拼接为解码后的密文。

为了更好地理解步骤s101至步骤s105,下面通过一个例子进行说明,具体表述如下:

例如,假设密文为“q2dkexnwu00zyvjkmtb4ogtqovjtqt09”,预设的编码方法对应的解码方法为base64,则,通过base64对“q2dkexnwu00zyvjkmtb4ogtqovjtqt09”进行解码,得到“cgdyspsm3arj10x8kp9rma==”。

s106:获取加密密钥,并将加密密钥确定为解密密钥。

在本实施例中,加密密钥可以作为解密密钥。加密密钥通过第一预设加密法加密得到,为了避免重复,此处不再阐述加密密钥通过第一预设加密法加密得到的具体过程。

具体地,获取加密密钥,并将获取到的加密密钥确定为解密密钥。

s107:通过第二预设加密法对应的解密法,采用解密密钥对解码后的密文进行解密处理,得到明文。

在本实施例中,第二预设加密法存在对应的解密法,第二预设加密法的具体内容,为了避免重复,此处不再阐述。

具体地,通过第二预设加密法对应的解密法,采用解密密钥对密文进行解密处理,得到明文。

为了更好地理解步骤s106至步骤s107,下面通过一个例子进行说明,具体表述如下:

例如,密文为“cgdyspsm3arj10x8kp9rma==”,加密密钥为“603f52d844017e83ca267751fee5b61b”,第二预设加密法对应的解密法为3des,预设的接收方式为电波接收,发送方为智能设备,则首先,通过电波接收智能设备发来的“cgdyspsm3arj10x8kp9rma==”,然后,获取“603f52d844017e83ca267751fee5b61b”做为解密密钥,最后,通过3des,采用“603f52d844017e83ca267751fee5b61b”对“cgdyspsm3arj10x8kp9rma==”进行解密处理,得到“爱我中华!!!”。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例2

对应于实施例1中的加密方法,图7示出了与实施例1提供的加密方法一一对应的加密装置。为了便于说明,仅示出了与本发明实施例相关的部分。

请参阅图7,该加密装置包括:第一获取模块71、第二获取模块72、第一加密模块73、提取模块74、第二加密模块75和发送模块76。各功能模块详细说明如下:

第一获取模块71,用于获取密码信息;

第二获取模块72,用于获取待加密的数据信息;

第一加密模块73,用于通过第一预设加密法对密码信息进行加密处理,得到目标密钥;

提取模块74,用于按照第二预设加密法的密钥规格长度从目标密钥中提取全部或部分的连续密钥信息作为加密密钥;

第二加密模块75,用于通过第二预设加密法,采用加密密钥对所述待加密的数据信息进行加密处理,得到密文;

发送模块76,用于通过预设的发送方式将密文发送给接收方。

进一步地,第一加密模块73包括:

填充子模块731,用于按照预设的填充方式将密码信息填充至预设长度,得到目标密码信息;

第一分组子模块732,用于按照第一预设的分组方式对目标密码信息进行分组,得到m组密钥分组,其中,m>0;

第二分组子模块733,用于按照第二预设的分组方式对m组密钥分组中的每组密钥分组分别进行分组,得到m*n组第一密钥子分组,其中,n>0;

复制子模块734,用于按照预设的复制方式对m*n组密钥子分组中的每组第一密钥子分组进行复制,得到m*n*l组第二密钥子分组,其中,l>0;

第一运算子模块735,用于根据m*n*l组第二密钥子分组中的每组第二密钥子分组采用第一预设的算法,得到初步密钥;

输出子模块736,用于按照预设的输出方式将初步密钥输出,得到目标密钥。

进一步地,第一运算子模块735包括:

第一确定子模块7351,用于获取按照前后顺序排列的所述m*n*l组第二密钥子分组中的排序最前1组第二密钥子分组作为当前数组;

第二确定子模块7352,用于获取i个不同的数值作为当前中间量,其中,i>0;

第三确定子模块7353,用于根据当前数组从两个以上的第一预设的算法中确定出当前算法;

第二运算子模块7354,用于根据当前中间量和当前数组采用当前算法得到临时密钥;

判断子模块7355,用于判断当前数组是否为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后1组第二密钥子分组;

第五运算子模块7356,用于若当前数组为按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组,则根据临时结果和所述i个不同的数值采用第二预设的算法进行计算,得到初步密钥;

第六运算子模块7357,用于若当前数组不是按照前后顺序排列的m*n*l组第二密钥子分组中的排序最后的1组第二密钥子分组,则获取排序最前1组第二密钥子分组的下1组第二密钥子分组作为当前数组,并且确定临时密钥为当前中间量,并触发第二运算子模块7354。

进一步地,第三确定子模块7354包括:

第三运算子模块73541,用于采用预设的操作函数和预设的操作函数对应的当前中间量中的j个数值进行运算,得到第一中间密钥,其中,i>j>0;

移位子模块73542,用于将第一中间密钥、k个数值中的一个以上数值、一个以上当前数组和预设的常数的总和进行向左或向右循环移预设位,得到第二中间密钥,其中,k为i与j的差的绝对值;

第四运算子模块73543,用于将第二密钥与预设操作函数对应的当前中间量中的一个以上的数值进行第三预设算法得到临时密钥。

进一步地,在将密文发送给接收方之前,该加密装置还包括:

编码模块77,用于通过预设的编码方法对密文进行编码,得到编码后的密文。

进一步地,编码模块77包括:

拆分子模块771,用于按照预设的拆分方式将密文拆分为单个字符的集合;

补充子模块772,用于按照预设的补充方式对每个字符补充预设个零,得到目标字符;

转换子模块773,用于按照预设字符表将每个目标字符转换为对应的编码字符,预设字符表记载了基于预设的编码方法的目标字符与编码字符之间的对应关系;

拼接子模块774,用于按照预设的拼接方式将每个编码字符拼接起来,得到编码后的密文。

本实施例提供的一种加密装置中各模块实现各自功能的过程,具体可参考前述实施例1的描述,此处不再赘述。

实施例3

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中加密方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中加密装置中各模块/单元的功能,为避免重复,这里不再赘述。

可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号和电信信号等。

实施例4

图8是本发明一实施例提供的终端设备的示意图。如图8所示,该实施例的终端设备80包括:处理器81、存储器82以及存储在存储器82中并可在处理器81上运行的计算机程序83。处理器81执行计算机程序83时实现上述实施例1中加密方法的步骤,例如图1所示的步骤s1至步骤s6。或者,处理器81执行计算机程序83时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块71至模块77的功能。

示例性的,计算机程序63可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器62中,并由处理器61执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序63在终端设备60中的执行过程。例如,计算机程序63可以被分割成第一获取模块、第二获取模块、第一加密模块、提取模块、第二加密模块和发送模块,各模块的具体功能如实施例2所示,为避免重复,此处不一一赘述。

终端设备80可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器81、存储器82。本领域技术人员可以理解,图8只是终端设备80的示例,并不构成对终端设备80的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器81可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器82可以是终端设备80的内部存储单元,例如终端设备80的硬盘或内存。存储器82也可以是终端设备80的外部存储设备,例如终端设备80上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器82还可以既包括终端设备80的内部存储单元也包括外部存储设备。存储器82用于存储计算机程序以及终端设备所需的其他程序和数据。存储器82还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1