CN110941817A - 一种密码加密及密文解密的方法和装置 - Google Patents
一种密码加密及密文解密的方法和装置 Download PDFInfo
- Publication number
- CN110941817A CN110941817A CN201911259938.4A CN201911259938A CN110941817A CN 110941817 A CN110941817 A CN 110941817A CN 201911259938 A CN201911259938 A CN 201911259938A CN 110941817 A CN110941817 A CN 110941817A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- initial
- digit
- module
- 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.)
- Granted
Links
Images
Classifications
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种密码加密及密文解密的方法和装置,先使用初始加密算法对待加密密码进行加密得到初始密文,再对初始密文进行移位处理得到移位密文;接着对移位后的密文进行截位并根据提取指令选取移位密文的一部分作为第二密文,另一部分作为第一密文;然后,对所述第二密文进行二次加密,最终将二次加密后的第二密文和第一密文进行拼接,得到安全密文并进行存储。如此,攻击者不但无法利用字典碰撞或暴力破解等手段得到初始密码,而且在不了解加密、移位、截位、再加密的具体过程时,无法根据密文还原得到初始密码,具有较高的安全性。本申请还提供了相应的密文解密方法及装置,可以对加密后的安全密文进行解密,以便进行密码校验。
Description
技术领域
本申请涉及密码领域,尤其涉及一种密码加密及密文解密的方法和装置。
背景技术
目前,银行会对银行卡密码进行加密,并在数据库中存储密文。如此,即使数据库被攻破,不法分子得到的也是加密后的银行卡密码,在加密算法无法被破解的前提下,攻击者很难利用加密后的银行卡密码反解出用户的银行卡密码,安全性较高。
但是,随着计算机技术的发展,用于对银行卡密码进行加密的加密算法(一般为32位MD5消息摘要算法)被证明并不安全。特别是针对银行卡密码这种简单的6位数字组合,攻击者可以较容易地通过字典对密文进行暴力破解,得到用户的银行卡密码,从而给用户造成经济上的损失。因此,亟需开发一种新的加密方法对银行用户密码进行加密。
发明内容
有鉴于此,本申请实施例提供了一种密码加密及密文解密的方法和装置,旨在不改变密文位数的前提下,提升现有密码加密方法的安全性。
为了实现上述目的,本发明提供了以下技术方案:
一种密码加密的方法,所述方法包括:
使用第一加密算法对原密码进行加密得到初始密文;
对所述初始密文进行移位处理得到移位密文,所述移位处理的移动位数是利用所述初始密文进行计算得到的;
对所述移位密文进行截位处理,将所述移位密文分为左部密文和右部密文,并根据提取指令从所述左部密文或右部密文中选择一个作为第一密文,另一个作为第二密文;
使用第二加密算法对所述第二密文进行二次加密得到二次加密密文;所述第二加密算法为不改变密文长度的加密算法;
将所述二次加密密文和所述第一密文进行拼接得到安全密文,存储所述安全密文。
可选地,所述初始密文包括数字部分和字母部分;所述移位处理的移动位数是通过以下方法得到的:
将所述初始密文的数字部分逐位相加,得到初始密文数字和;
对所述初始密文数字和以及所述初始密文的数字部分的位数进行模余运算,将计算得到的余数作为所述移动位数。
可选地,所述对所述初始密文进行移位处理包括:
选取所述初始密文的数字部分,将所述数字部分排列起来作为第一数字序列,并记录所述第一数字序列每一位数字在初始密文中的具体位置;
从所述初始字序列密文左起第一位开始,截取长度为所述移动位数的密文作为左半部分数字序列,将剩余部分数字序列作为右半部分数字序列;
将所述左半部分数字序列和所述右半部分数字序列位置互换,得到第二数字序列;
按照所述第一数字序列每一位数字在初始密文中的具体位置,将所述第二数字序列各位数字重新填入所述初始密文的字母部分,得到所述移位密文。
可选地,在对所述移位密文进行截位处理前,所述方法还包括:获取预设的截位长度;
所述对所述移位密文进行截位处理包括:
根据所述截位长度值,从所述移位密文左起第一位开始,截取长度为所述截位长度的密文作为左部密文,将剩余部分密文作为右部密文;
可选地,所述对所述安全密文进行存储还包括:
将安全密文信息存储在和所述安全密文和第一加密算法不同的数据库中,所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令
一种密文解密的方法,所述方法包括:
获取预先保存的安全密文和安全密文信息;所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令;
根据所述截位长度将所述安全密文分为两部分,并根据所述提取指令确定二次加密密文和第一密文;
利用第二加密算法对所述二次加密密文进行解密得到第二密文;
将所述第二密文和第一密文进行拼接得到移位密文;
对所述移位密文进行反移位处理得到初始密文,所述反移位处理的移动位数是利用所述移位密文进行计算得到的;
利用第一加密算法对所述初始密文进行解密得到原密码,以便进行密码校验。
一种密码加密的装置,所述装置包括:
第一加密模块,用于使用第一加密算法对原密码进行加密得到初始密文;
移位模块,用于对所述初始密文进行移位处理得到移位密文,所述移位处理的移动位数是利用所述初始密文进行计算得到的;
截位选择模块,用于对所述移位密文进行截位处理,将所述移位密文分为左部密文和右部密文,并根据提取指令从所述左部密文或右部密文中选择一个作为第一密文,另一个作为第二密文;
第二加密模块,用于使用第二加密算法对所述第二密文进行二次加密得到二次加密密文;所述第二加密算法为不改变密文长度的加密算法;
拼接存储模块,用于将所述二次加密密文和所述第一密文进行拼接得到安全密文,存储所述安全密文。
可选地,所述第一密文包括数字部分和字母部分;所述移位模块包括:
求和模块,用于将所述初始密文的数字部分逐位相加,得到初始密文数字和;
模余运算模块,用于对所述初始密文数字和以及所述初始密文的数字部分的位数进行模余运算,将计算得到的余数作为所述移动位数。
可选地,所述移位模块包括:
第一序列获取模块,用于选取所述初始密文的数字部分,将所述数字部分排列起来作为第一数字序列,并记录所述第一数字序列每一位数字在初始密文中的具体位置;
第二截取模块,用于从所述初始字序列密文左起第一位开始,截取长度为所述移动位数的密文作为左半部分数字序列,将剩余部分数字序列作为右半部分数字序列;
位置互换模块,用于将所述左半部分数字序列和所述右半部分数字序列位置互换,得到第二数字序列;
重插入模块,用于按照所述第一数字序列每一位数字在第一密文中的具体位置,将所述第二数字序列各位数字重新填入所述初始密文的字母部分,得到所述移位密文。
一种密文解密的装置,所述装置包括:
获取模块,用于获取预先保存的安全密文和安全密文信息,所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令;
反截位模块,用于根据所述截位长度将所述安全密文分为两部分,并根据所述提取指令确定二次加密密文和第一密文;
第二解密模块,用于根据第二加密算法对所述二次加密密文进行解密得到第二密文;
拼接模块,用于将所述第二密文和第一密文进行拼接得到移位密文;
反移位模块,用于对所述移位密文进行反移位处理得到初始密文,所述反移位处理的移动位数是利用所述移位密文进行计算得到的;
第一解密模块,用于利用第一加密算法对所述初始密文进行解密得到原密码,以便进行密码校验。
本申请提供了一种密码加密及密文解密的方法和装置,先使用初始加密算法对待加密密码进行加密得到初始密文,再对初始密文进行移位处理得到移位密文;接着对移位后的密文进行截位并根据提取指令选取移位密文的一部分作为第二密文,另一部分作为第一密文;然后,对所述第二密文进行二次加密,最终将二次加密后的第二密文和第一密文进行拼接,得到安全密文并进行存储。由于二次加密算法是不改变密文长度的加密算法,最终得到的第二密文长度和第一密文一致,得到的第二密文左侧部分进行过一次加密,右侧部分进行过两次加密。如此,攻击者不但无法利用字典碰撞或暴力破解等手段得到初始密码,而且在不了解加密、移位、截位、再加密的具体过程时,无法根据密文还原得到初始密码,具有较高的安全性。本申请还提供了相应的密文解密方法及装置,可以对加密后的安全密文进行解密,以便进行密码校验。
附图说明
为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的密码加密的方法流程图。
图2为本申请实施例提供的密码加密的过程示意图。
图3为本申请实施例提供的密文解密的方法流程图。
图4为本申请实施例提供的密文解密的过程示意图。
图5为本申请实施例提供的密码加密的装置的一种结构示意图。
图6为本申请实施例提供的密码加密的装置的一种结构示意图。
图7为本申请实施例提供的密码加密的装置的一种结构示意图。
图8为本申请实施例提供的密文解密的装置的一种结构示意图。
具体实施方式
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm)是一种应用广泛的信息加密算法,可以将任意长度的输入转化为固定长度的字符串输出,在其被宣布破解之前,MD5信息摘要被广泛地应用于银行密码的加密存储。通过对银行卡密码进行加密,只在数据库中存储加密后的密文,不存储原始密码。如此,即使银行数据库被攻破,不法分子得到的也是加密后的银行卡密码,攻击者无法利用加密后的银行卡密码反解出用户的银行卡密码,确保了银行存储客户银行卡密码的安全性。
但是,随着计算机技术的发展,MD5信息摘要被证明是可以被破解的,不法分子可以通过字典或其他手段对密文进行暴力破解。特别是对于银行卡密码这种只能采用6位数字组合的强度较低的密码,一旦不法分子从银行数据库中窃取到了密码对应的密文,可以很快破解出用户的银行卡密码,给用户造成大量损失。
目前为了解决这个问题,可以使用一些现有技术无法破解的加密算法,如安全散列算法512(SHA-512)等,对银行卡密码进行加密。如此,可以确保不法分子无法通过密文反解用户的银行卡密码。但是,SHA-512等算法加密得到的密文位数远大于通过MD5信息摘要得到的密文,如果将银行系统内存储的银行卡密码全部换成这些密文,需要对整个数据库进行更新。这对于日常业务频繁且客户极多的银行系统几乎是不可能的。另外,使用SHA-512等高级加密算法带来的额外系统负担和计算资源消耗也是一个大问题。
为了给出在现有银行系统的基础上,经过简单改进就能够确保密码安全的方案,本申请提供了一种密码加密及密文解密的方法和装置,以下将从银行系统服务区的角度对本申请优选实施例进行说明。需要特别指出的是,本申请可以用于MD5加密算法,也可以用于其他输出为固定长度的信息摘要算法或加密算法。无论用于何种算法,都可以增加密文的破解难度,提升安全性。
参见图1,图1为本申请实施例提供的密码加密的方法流程图,包括:
S101:使用第一加密算法对原密码进行加密得到初始密文。
在本实施例中,可以先使用第一加密算法对原密码进行加密得到初始密文。其中,第一加密算法可以是MD5加密算法,也可以是安全散列算法1(SHA1)等其他加密算法,原密码可以是常见的银行卡六位数字密码,也可以是其他密码。
下面以32位MD5信息摘要算法和6位数字密码,结合图2给出的密码加密过程示意图进行进一步说明。假设原密码为最上方的“123456”,通过32位MD5信息摘要算法进行加密,得到的初始密文为:e10adc3949ba59abbe56e057f20f883e,由于MD5信息摘要算法可以被破解,这段密文也是可以被直接暴力破解的,需要进行后续处理才能存储在数据库中。
S102:对所述初始密文进行移位处理得到移位密文。
在获取初始密文后,可以根据初始密文计算出移动位数,根据所述移动位数进行移位处理,得到移位密文。由于移位处理只改变了数字在密文中的位置,没有改变数字本身的大小,而移动位数是根据初始密文计算得到的,因此在解密时也可以通过移位密文计算移动位数,进行反移位,从而得到初始密文。如此,在确保移位密文可以被解密的前提下,通过简单的处理就得到了和初始密文完全不同的移位密文。
具体地,在一些实施例中,所述第一密文包括数字部分和字母部分,此时可以通过移位密文数字部分进行求和、模余运算来获取移动位数。例如,服务器可以将所述初始密文的数字部分提取出来,逐位相加,得到初始密文数字和;再使用初始密文数字和以及初始密文的数字部分的位数进行模余运算,将计算得到的余数作为所述移动位数。
参见图2给出的密码加密过程示意图,当初始密文为e10adc3949ba59abbe56e057f20f883e时,其数字部分包括1、0、3、9、4、9、5、9、5、6、0、5、7、2、0、8、8、3一共18个数字,初始密文的数字部分位数就是18,将这些数字相加得到的初始密文数字和为84。再对18和84进行模余运算确定移动位数为12。
在一些其他的实施例中,为提高密文的安全性,服务器可以仅对数字部分进行移位。具体地,在进行移位处理后,可以选取初始密文的数字部分,将数字部分排列起来作为第一数字序列,并记录每一位数字在初始密文中的具体位置;然后,从所述第一字序列密文左起第一位开始,截取长度为所述移动位数的密文作为左半部分数字序列,将剩余部分数字序列作为右半部分数字序列;再将左半部分数字序列和右半部分数字序列位置互换,得到第二数字序列;最后,服务器按照所述第一数字序列每一位数字在初始密文中的具体位置,将所述第二数字序列各位数字重新填入所述初始密文的字母部分,得到移位密文。
参见图2给出的密码加密过程示意图,当初始密文为e10adc3949ba59abbe56e057f20f883e,移动位数为12时,从初始密文中提取的第一数字序列为:103949595605720883,从左起第一位“1”开始,截取前12位数字序列103949595605,将前12位数字和后6位数字调换位置,得到第二数字序列720883103949595605。最后,在按照初始密文中各个数字所在的位置,将第二数字序列的数字逐位插入字母部分中,得到移位密文e72adc0883ba10abbe39e495f95f605e。如此,通过只对数字部分进行移位,进一步确保了移位密文和初始密文具有较大差异。
S103:对移位密文进行截位处理,将移位密文分为左部密文和右部密文,根据提取指令选择第一密文和第二密文。
在得到移位密文后,本申请可以将移位密文分成左部密文和右部密文,并根据提取指令,从左部密文和右部密文中选择一个作为第二密文,另一个作为第一密文,以便进行后续的二次加密处理。
具体的,在一些实施例中,对移位密文进行截位处理是根据预设的截位长度进行的,从从所述移位密文左起第一位开始,截取长度为所述截位长度的密文作为左部密文,将剩余部分密文作为右部密文。
仍然参见图2给出的密码加密过程示意图,当移位密文为e72adc0883ba10abbe39e495f95f605e,预设的截位长度为16位,提取指令为右半部分密文时,服务器可以从所述移位密文最左侧开始,截取前16位“e72adc0883ba10ab”作为左部密文,后16位“be39e495f95f605e”作为右部密文。再根据提取指令,将右部密文作为第二密文进行后续处理。
S104:使用第二加密算法对第二密文进行二次加密得到二次加密密文。
本实施例中,可以使用不改变密文长度的第二加密算法对第二密文进行二次加密,得到二次加密密文。其中,第二加密算法可以是凯撒加密方法、维吉尼亚加密方法等较简单的加密方法,也可以是和截位长度相符的高级加密算法。例如,在图2给出的密码加密过程示意图中,截位长度为16位,第二密文长度也为16位,此时可以采用16位MD5信息摘要算法对第二密文“be39e495f95f605e”进行二次加密,得到的“b30dcb591876c912”作为二次加密密文。
S105:将所述二次加密密文和所述第一密文进行拼接得到安全密文,存储所述安全密文。
第二密文加密结束后,可以将二次加密密文和第一密文进行拼接,得到安全密文,再将安全密文存储在数据库中。
在一些实施例中,为便于后续解密,还可以将截位长度、第一加密算法、第二加密算法和提取指令作为安全密文信息进行存储。为了进一步提高安全性,所述安全密文信息与安全密文存储于不同数据库。
本申请提供了一种密码加密方法,先使用初始加密算法对待加密密码进行加密得到初始密文,再对初始密文进行移位处理得到移位密文;接着对移位后的密文进行截位并根据提取指令选取移位密文的一部分作为第二密文,另一部分作为第一密文;然后,对所述第二密文进行二次加密,最终将二次加密后的第二密文和第一密文进行拼接,得到安全密文并进行存储。由于二次加密算法是不改变密文长度的加密算法,最终得到的第二密文长度和第一密文一致,得到的第二密文左侧部分进行过一次加密,右侧部分进行过两次加密。如此,攻击者不但无法利用字典碰撞或暴力破解等手段得到初始密码,而且在不了解加密、移位、截位、再加密的具体过程时,无法根据密文还原得到初始密码,具有较高的安全性。本申请还提供了相应的密文解密方法及装置,可以对加密后的安全密文进行解密,以便进行密码校验。
需要特殊说明的是,图2只是本申请提供的密码加密方法的一种优选实施例,不代表本申请全部的技术方案。
另一方面,为了在用户使用银行卡时进行密码校验,本申请还提供了了一种针对前述加密后得到的密文的解密方法,参见图3,图3为本申请实施例提供的密文解密的方法流程图,包括:
S301:获取预先保存的安全密文和安全密文信息。
在对密文进行解密前,服务器需要先获取安全密文和安全密文信息。其中,所述安全密文信息和安全密文都是通过图1所示的方法得到的。
S302:根据所述截位长度将所述安全密文分为两部分,并根据所述提取指令确定二次加密密文和第一密文。
S303:利用第二加密算法对二次加密密文进行解密得到第二密文。
S304:将所述第二密文和第一密文进行拼接得到移位密文。
S305:对所述移位密文进行反移位处理得到初始密文。
在一些实施例中,由于加密过程是从左起第一位开始进行移位的,因此在解密的过程中,服务器可以从移位密文右起第一位开始,向左截取移动位数长度的数字序列作为左半部分数字序列,剩下的数字序列为右半部分数字序列。将两个数字序列的顺序颠倒,得到第一数字序列。
S306:利用第一加密算法对所述初始密文进行解密得到原密码。
结合图4所示的密文解密流程示意图,当所述安全密文为e72adc0883ba10abb30dcb591876c912,截位位数为16位,提取指令为右部密文,第一加密算法为32位MD5信息摘要算法、第二加密算法为16位MD5信息摘要算法时,服务器将安全密文截为e72adc0883ba10ab和b30dcb591876c912两部分,并根据提取指令确定前者为第一密文、后者为二次加密密文。然后,服务器再根据第二加密算法,对二次加密密文进行16位MD5解密,得到第二密文be39e495f95f605e,接着将第一密文和第二密文进行拼接,得到移位密文e72adc0883ba10abbe39e495f95f605e。
然后,服务器可以提取移位密文中的数字部分和字母部分,对数字部分进行求和、模余运算,得到移动位数为12,此过程与上一实施例中移动位数的计算方式一致。从数字序列最右侧开始,向左截取长度为12位的数字序列,得到左半部分数字序列103949595605和右半部分数字序列720883,再将两个数字序列调换位置,得到第一数字序列103949595605720883;再将第一数字序列插入原位置,即可得到初始密文e10adc3949ba59abbe56e057f20f883e;最后再将初始密文使用32位MD5信息摘要算法对应的解密算法进行解密,即可得到原密码123456,用于密码校验及其他用途。
本申请实施例提供的密文解密方法,可以对加密后的安全密文进行解密,和前述密码加密方法结合使用,使得不法分子即使通过攻击数据库获取到了安全密文,在不了解具体加密流程的前提下,无法反解银行卡密码,从而确保了密码存储及使用的安全性。
需要特殊说明的是,图4只是本申请提供的密文解密方法的一种优选实施例,不代表本申请全部的技术方案。
以上为本申请实施例提供密码加密及密文解密的方法的一些具体实现方式,基于此,本申请还提供了对应的装置。下面将从功能模块化的角度对本申请实施例提供的上述装置进行介绍。
参见图5所示的密码加密的装置的结构示意图,该装置500包括:
第一加密模块510,用于使用第一加密算法对原密码进行加密得到初始密文.
移位模块520,用于对所述初始密文进行移位处理得到移位密文,所述移位处理的移动位数是利用所述初始密文进行计算得到的。
截位选择模块530,用于对所述移位密文进行截位处理,将所述移位密文分为左部密文和右部密文,并根据提取指令从所述左部密文或右部密文中选择一个作为第一密文,另一个作为第二密文。
第二加密模块540,用于使用第二加密算法对所述第二密文进行二次加密得到二次加密密文;所述第二加密算法为不改变密文长度的加密算法。
拼接存储模块550,用于将所述二次加密密文和所述第一密文进行拼接得到安全密文,存储所述安全密文。
本申请提供的一种密码加密装置,先使用初始加密算法对待加密密码进行加密得到初始密文,再对初始密文进行移位处理得到移位密文;接着对移位后的密文进行截位并根据提取指令选取移位密文的一部分作为第二密文,另一部分作为第一密文;然后,对所述第二密文进行二次加密,最终将二次加密后的第二密文和第一密文进行拼接,得到安全密文并进行存储。由于二次加密算法是不改变密文长度的加密算法,最终得到的第二密文长度和第一密文一致,得到的第二密文左侧部分进行过一次加密,右侧部分进行过两次加密。如此,攻击者不但无法利用字典碰撞或暴力破解等手段得到初始密码,而且在不了解加密、移位、截位、再加密的具体过程时,无法根据密文还原得到初始密码,具有较高的安全性。本申请还提供了相应的密文解密方法及装置,可以对加密后的安全密文进行解密,以便进行密码校验。
可选地,参见图6,在图5所示装置的基础上,所述移位模块520包括:
求和模块521,用于将所述初始密文的数字部分逐位相加,得到初始密文数字和。
模余运算模块522,用于对所述初始密文数字和以及所述初始密文的数字部分的位数进行模余运算,将计算得到的余数作为所述移动位数。
如此,通过简单的处理就得到了和初始密文完全不同的移位密文,并且在使用时易于解密。
可选地,参见图7,在图5所示装置的基础上,所述移位模块520包括:
第一序列获取模块523,用于选取所述初始密文的数字部分,将所述数字部分排列起来作为第一数字序列,并记录所述第一数字序列每一位数字在初始密文中的具体位置。
第二截取模块524,用于从所述初始字序列密文左起第一位开始,截取长度为所述移动位数的密文作为左半部分数字序列,将剩余部分数字序列作为右半部分数字序列。
位置互换模块525,用于将所述左半部分数字序列和所述右半部分数字序列位置互换,得到第二数字序列。
重插入模块526,用于按照所述第一数字序列每一位数字在第一密文中的具体位置,将所述第二数字序列各位数字重新填入所述初始密文的字母部分,得到所述移位密文。
如此,通过只对数字部分进行移位,进一步确保了移位密文和初始密文具有较大差异。
本申请还提供了一种密文解密的装置,如图8所示,所示密文解密装置包括:
获取模块810,用于获取预先保存的安全密文和安全密文信息,所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令。
反截位模块820,用于根据所述截位长度将所述安全密文分为两部分,并根据所述提取指令确定二次加密密文和第一密文。
第二解密模块830,用于根据第二加密算法对所述二次加密密文进行解密得到第二密文。
拼接模块840,用于将所述第二密文和第一密文进行拼接得到移位密文。
反移位模块850,用于对所述移位密文进行反移位处理得到初始密文,所述反移位处理的移动位数是利用所述移位密文进行计算得到的。
第一解密模块860,用于利用第一加密算法对所述初始密文进行解密得到原密码,以便进行密码校验。
本实施例提供的密文解密装置,可以对加密后的安全密文进行解密,和前述密码加密方法结合使用,使得不法分子即使通过攻击数据库获取到了安全密文,在不了解具体加密流程的前提下,无法反解银行卡密码,从而确保了密码存储及使用的安全性。
本申请实施例中提到的“第一密文”、“第二密文”“第一加密算法”等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中第一用户和第二用户可以是或者也可以不是物理上分开的,作为初始任务模板的部件可以是或者也可以不是代码模板。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (10)
1.一种密码加密的方法,其特征在于,所述方法包括:
使用第一加密算法对原密码进行加密得到初始密文;
对所述初始密文进行移位处理得到移位密文,所述移位处理的移动位数是利用所述初始密文进行计算得到的;
对所述移位密文进行截位处理,将所述移位密文分为左部密文和右部密文,并根据提取指令从所述左部密文或右部密文中选择一个作为第一密文,另一个作为第二密文;
使用第二加密算法对所述第二密文进行二次加密得到二次加密密文;所述第二加密算法为不改变密文长度的加密算法;
将所述二次加密密文和所述第一密文进行拼接得到安全密文,存储所述安全密文。
2.根据权利要求1所述的方法,其特征在于,所述初始密文包括数字部分和字母部分;所述移位处理的移动位数是通过以下方法得到的:
将所述初始密文的数字部分逐位相加,得到初始密文数字和;
对所述初始密文数字和以及所述初始密文的数字部分的位数进行模余运算,将计算得到的余数作为所述移动位数。
3.根据权利要求2所述的方法,其特征在于,所述对所述初始密文进行移位处理包括:
选取所述初始密文的数字部分,将所述数字部分排列起来作为第一数字序列,并记录所述第一数字序列每一位数字在初始密文中的具体位置;
从所述初始字序列密文左起第一位开始,截取长度为所述移动位数的密文作为左半部分数字序列,将剩余部分数字序列作为右半部分数字序列;
将所述左半部分数字序列和所述右半部分数字序列位置互换,得到第二数字序列;
按照所述第一数字序列每一位数字在初始密文中的具体位置,将所述第二数字序列各位数字重新填入所述初始密文的字母部分,得到所述移位密文。
4.根据权利要求1所述的方法,其特征在于,在对所述移位密文进行截位处理前,所述方法还包括:获取预设的截位长度;
所述对所述移位密文进行截位处理包括:
根据所述截位长度值,从所述移位密文左起第一位开始,截取长度为所述截位长度的密文作为左部密文,将剩余部分密文作为右部密文。
5.根据权利要求1所述的方法,其特征在于,所述对所述安全密文进行存储还包括:
将安全密文信息存储在和所述安全密文和第一加密算法不同的数据库中,所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令。
6.一种密文解密的方法,其特征在于,所述方法包括:
获取预先保存的安全密文和安全密文信息;所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令;
根据所述截位长度将所述安全密文分为两部分,并根据所述提取指令确定二次加密密文和第一密文;
利用第二加密算法对所述二次加密密文进行解密得到第二密文;
将所述第二密文和第一密文进行拼接得到移位密文;
对所述移位密文进行反移位处理得到初始密文,所述反移位处理的移动位数是利用所述移位密文进行计算得到的;
利用第一加密算法对所述初始密文进行解密得到原密码,以便进行密码校验。
7.一种密码加密的装置,其特征在于,所述装置包括:
第一加密模块,用于使用第一加密算法对原密码进行加密得到初始密文;
移位模块,用于对所述初始密文进行移位处理得到移位密文,所述移位处理的移动位数是利用所述初始密文进行计算得到的;
截位选择模块,用于对所述移位密文进行截位处理,将所述移位密文分为左部密文和右部密文,并根据提取指令从所述左部密文或右部密文中选择一个作为第一密文,另一个作为第二密文;
第二加密模块,用于使用第二加密算法对所述第二密文进行二次加密得到二次加密密文;所述第二加密算法为不改变密文长度的加密算法;
拼接存储模块,用于将所述二次加密密文和所述第一密文进行拼接得到安全密文,存储所述安全密文。
8.根据权利要求7所述的装置,其特征在于,所述第一密文包括数字部分和字母部分;所述移位模块包括:
求和模块,用于将所述初始密文的数字部分逐位相加,得到初始密文数字和;
模余运算模块,用于对所述初始密文数字和以及所述初始密文的数字部分的位数进行模余运算,将计算得到的余数作为所述移动位数。
9.根据权利要求8所述的装置,其特征在于,所述移位模块包括:
第一序列获取模块,用于选取所述初始密文的数字部分,将所述数字部分排列起来作为第一数字序列,并记录所述第一数字序列每一位数字在初始密文中的具体位置;
第二截取模块,用于从所述初始字序列密文左起第一位开始,截取长度为所述移动位数的密文作为左半部分数字序列,将剩余部分数字序列作为右半部分数字序列;
位置互换模块,用于将所述左半部分数字序列和所述右半部分数字序列位置互换,得到第二数字序列;
重插入模块,用于按照所述第一数字序列每一位数字在第一密文中的具体位置,将所述第二数字序列各位数字重新填入所述初始密文的字母部分,得到所述移位密文。
10.一种密文解密的装置,其特征在于,所述装置包括:
获取模块,用于获取预先保存的安全密文和安全密文信息,所述安全密文信息包括截位长度、第一加密算法、第二加密算法和提取指令;
反截位模块,用于根据所述截位长度将所述安全密文分为两部分,并根据所述提取指令确定二次加密密文和第一密文;
第二解密模块,用于根据第二加密算法对所述二次加密密文进行解密得到第二密文;
拼接模块,用于将所述第二密文和第一密文进行拼接得到移位密文;
反移位模块,用于对所述移位密文进行反移位处理得到初始密文,所述反移位处理的移动位数是利用所述移位密文进行计算得到的;
第一解密模块,用于利用第一加密算法对所述初始密文进行解密得到原密码,以便进行密码校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259938.4A CN110941817B (zh) | 2019-12-10 | 2019-12-10 | 一种密码加密及密文解密的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259938.4A CN110941817B (zh) | 2019-12-10 | 2019-12-10 | 一种密码加密及密文解密的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941817A true CN110941817A (zh) | 2020-03-31 |
CN110941817B CN110941817B (zh) | 2022-02-22 |
Family
ID=69910338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911259938.4A Active CN110941817B (zh) | 2019-12-10 | 2019-12-10 | 一种密码加密及密文解密的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941817B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552938A (zh) * | 2020-04-29 | 2020-08-18 | 上海明略人工智能(集团)有限公司 | 文件加密方法及装置 |
CN111740828A (zh) * | 2020-07-29 | 2020-10-02 | 北京信安世纪科技股份有限公司 | 一种密钥生成方法以及装置、设备、加密方法 |
CN112134689A (zh) * | 2020-09-28 | 2020-12-25 | 中国银行股份有限公司 | 一种密文的生成方法及装置 |
CN112134690A (zh) * | 2020-09-28 | 2020-12-25 | 中国银行股份有限公司 | 一种密文的生成方法及装置 |
CN112861150A (zh) * | 2021-02-05 | 2021-05-28 | 国网山东省电力公司日照供电公司 | 一种区域备自投监控方法、系统、终端及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100067687A1 (en) * | 2004-12-06 | 2010-03-18 | The Trustees Of The Stevens Institute Of Technology | Method and apparatus for maintaining data integrity for block-encryption algorithms |
CN101355421B (zh) * | 2008-09-25 | 2011-05-11 | 中国电信股份有限公司 | 分组加解密数据长度适配的方法 |
CN102752110A (zh) * | 2011-04-19 | 2012-10-24 | 中国银行股份有限公司 | 一种动态密码生成方法及系统 |
CN102904711A (zh) * | 2011-07-25 | 2013-01-30 | 深圳市金溢科技有限公司 | 信息加密方法 |
CN103326851A (zh) * | 2013-07-03 | 2013-09-25 | 西京学院 | 基于单片机的一种罗盘式加密解密方法 |
CN103853985A (zh) * | 2012-12-05 | 2014-06-11 | 中国移动通信集团黑龙江有限公司 | 数据加密方法、解密方法及装置 |
US20150222609A1 (en) * | 2009-08-26 | 2015-08-06 | Sling Media Inc. | Systems and methods for transcoding and place shifting media content |
CN106452732A (zh) * | 2016-09-28 | 2017-02-22 | 广州凯耀资产管理有限公司 | 一种信息加密方法及其装置 |
CN108173640A (zh) * | 2017-12-11 | 2018-06-15 | 上海高顿教育培训有限公司 | 一种高安全性的字符串对称加密和解密方法 |
CN110516462A (zh) * | 2019-08-30 | 2019-11-29 | 京东数字科技控股有限公司 | 用于加密数据的方法和装置 |
-
2019
- 2019-12-10 CN CN201911259938.4A patent/CN110941817B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100067687A1 (en) * | 2004-12-06 | 2010-03-18 | The Trustees Of The Stevens Institute Of Technology | Method and apparatus for maintaining data integrity for block-encryption algorithms |
CN101355421B (zh) * | 2008-09-25 | 2011-05-11 | 中国电信股份有限公司 | 分组加解密数据长度适配的方法 |
US20150222609A1 (en) * | 2009-08-26 | 2015-08-06 | Sling Media Inc. | Systems and methods for transcoding and place shifting media content |
CN102752110A (zh) * | 2011-04-19 | 2012-10-24 | 中国银行股份有限公司 | 一种动态密码生成方法及系统 |
CN102904711A (zh) * | 2011-07-25 | 2013-01-30 | 深圳市金溢科技有限公司 | 信息加密方法 |
CN103853985A (zh) * | 2012-12-05 | 2014-06-11 | 中国移动通信集团黑龙江有限公司 | 数据加密方法、解密方法及装置 |
CN103326851A (zh) * | 2013-07-03 | 2013-09-25 | 西京学院 | 基于单片机的一种罗盘式加密解密方法 |
CN106452732A (zh) * | 2016-09-28 | 2017-02-22 | 广州凯耀资产管理有限公司 | 一种信息加密方法及其装置 |
CN108173640A (zh) * | 2017-12-11 | 2018-06-15 | 上海高顿教育培训有限公司 | 一种高安全性的字符串对称加密和解密方法 |
CN110516462A (zh) * | 2019-08-30 | 2019-11-29 | 京东数字科技控股有限公司 | 用于加密数据的方法和装置 |
Non-Patent Citations (1)
Title |
---|
孟友一: "古典密码和流密码的原理及应用", 《科技传播》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552938A (zh) * | 2020-04-29 | 2020-08-18 | 上海明略人工智能(集团)有限公司 | 文件加密方法及装置 |
CN111552938B (zh) * | 2020-04-29 | 2024-03-15 | 上海明略人工智能(集团)有限公司 | 文件加密方法及装置 |
CN111740828A (zh) * | 2020-07-29 | 2020-10-02 | 北京信安世纪科技股份有限公司 | 一种密钥生成方法以及装置、设备、加密方法 |
CN112134689A (zh) * | 2020-09-28 | 2020-12-25 | 中国银行股份有限公司 | 一种密文的生成方法及装置 |
CN112134690A (zh) * | 2020-09-28 | 2020-12-25 | 中国银行股份有限公司 | 一种密文的生成方法及装置 |
CN112861150A (zh) * | 2021-02-05 | 2021-05-28 | 国网山东省电力公司日照供电公司 | 一种区域备自投监控方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110941817B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941817B (zh) | 一种密码加密及密文解密的方法和装置 | |
US12069038B2 (en) | Encryption and decryption techniques using shuffle function | |
EP2301185B1 (en) | Format-preserving cryptographic systems | |
KR101447554B1 (ko) | 암호화된 파일을 복호화하는 장치 및 그 방법 | |
US9608822B2 (en) | Method for generating an HTML document that contains encrypted files and the code necessary for decrypting them when a valid passphrase is provided | |
US9979537B2 (en) | Format-preserving cipher | |
US11979500B2 (en) | Data format-preserving encryption, tokenization, and access control for vaultless systems and methods | |
CN106778292B (zh) | 一种Word加密文档的快速还原方法 | |
Geetha et al. | Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm | |
CN111404953A (zh) | 一种消息加密方法、解密方法及相关装置、系统 | |
CN114826590B (zh) | 一种分组模式加密方法、解密方法及其装置、设备 | |
CN112532379A (zh) | 一种文件保护方法及装置 | |
Sermeno et al. | Modified Vigenere cryptosystem: An integrated data encryption module for learning management system | |
CN104794243B (zh) | 基于文件名的第三方密文检索方法 | |
CN113726515A (zh) | 一种基于ukey的密钥处理方法、存储介质及电子设备 | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
CN117744116A (zh) | 安装包保护方法、解密方法、装置、电子设备及存储介质 | |
US20180309579A1 (en) | Secure representation via a format preserving hash function | |
CN112199730A (zh) | 一种终端上应用数据的处理方法、装置及电子设备 | |
US10853502B1 (en) | Systems and methods for reducing computational difficulty of cryptographic operations | |
KR101428648B1 (ko) | 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 | |
Babash | XOR ciphers model and the attack to it | |
KR20110073227A (ko) | 개인 정보를 순서 정보와 내용 정보로 분리하여 암호화하고 합성하는 방법, 장치,서버 및 기록 매체 | |
CN115422579A (zh) | 数据加密存储及存储后查询方法及系统 | |
Johari et al. | Triplicative cipher technique |
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 |