CN103873250A - 一种密文生成方法、密文解密方法及加密解密装置 - Google Patents
一种密文生成方法、密文解密方法及加密解密装置 Download PDFInfo
- Publication number
- CN103873250A CN103873250A CN201210553366.2A CN201210553366A CN103873250A CN 103873250 A CN103873250 A CN 103873250A CN 201210553366 A CN201210553366 A CN 201210553366A CN 103873250 A CN103873250 A CN 103873250A
- Authority
- CN
- China
- Prior art keywords
- character
- code table
- ciphertext
- appointment
- string
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种密文生成方法、密文解密方法、加密解密装置,用于解决现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。该密文生成方法包括:根据预设的密钥文件和串号生成方法获得加密串号,并随机生成包含多个字符的码表;根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从生成的码表中查找分别对应于待加密的各明文字符的码表字符,并根据查找到的码表字符,生成密文。可见,密文的安全不仅依赖于加密算法,还依赖于预设的密钥文件和随机生成的码表,只要使用不同的密钥文件和码表对明文进行加密处理,即便获得了解密算法,也不可能准确对该密文进行解密。
Description
技术领域
本发明涉及通信安全领域,尤其涉及一种密文生成方法、密文解密方法及加密解密装置。
背景技术
在多个不同的系统共存的通信网络中,为确保系统间的通信安全,通常情况下,系统之间的通信口令和通信信息都需要以密文的形式进行传输或者保存。目前常用Java语言自带的底层加密算法来实现对跨系统的口令或信息进行加密处理,但这种方法在跨系统使用时存在一些问题。例如,由于利用该底层加密算法对明文进行加密而获得的密文的安全完全依赖于加密算法,那么当将用该加密算法加密的密文发送至其他系统时,必须向其他系统提供解密算法,而这个解密算法可以解密所有用该解密算法对应的加密算法加密的密文,因此一旦获得这个解密算法,这个系统中用该解密算法对应的加密算法进行加密的密文都可以被解密,这样就给系统带来很大的安全隐患。
发明内容
本发明实施例提供了一种密文生成方法、密文解密方法及加密解密装置,用以解决现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
本发明实施例采用以下技术方案:
一种密文生成方法,包括:
根据预设的密钥文件和串号生成方法获得加密串号,并随机生成码表,所述码表是由多个随机排列的码表字符所组成的字符串;
根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从所述码表中查找分别对应于待加密的各明文字符的码表字符;并
根据查找到的码表字符,生成密文。
一种密文解密方法,包括:
根据密钥文件和串号生成方法获得解密串号;
根据获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符;并
根据查找到的码表字符,生成解密文件。
一种加密装置,包括:
加密串号获得单元,用于根据预设的密钥文件和串号生成方法获得加密串号;
码表生成单元,用于随机生成码表,所述码表是由多个随机排列的码表字符所组成的字符串;
字符查找单元,用于根据所述加密串号获得单元获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从所述码表生成单元生成的码表中查找分别对应于待加密的各明文字符的字符;
密文生成单元,用于根据所述字符查找单元查找到的码表字符,生成密文。
一种解密装置,包括:
解密串号获得单元,用于根据密钥文件和串号生成方法获得解密串号;
解密字符查找单元,用于根据所述解密串号获得单元获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符;
解密文件生成单元,用于根据所述解密字符查找单元查找到的码表字符,生成解密文件。
本发明实施例的有益效果如下:
本发明实施例提供的一种密文生成方法、密文解密方法及加密解密装置,根据预设的密钥文件和串号生成方法获得加密串号,并随机生成包含多个字符的码表;根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从生成的码表中查找分别对应于待加密的各明文字符的码表字符,并根据选取的字符,生成密文。可见,本发明实施例提供的密文生成方法,密文的安全不仅依赖于加密算法,还依赖于预设的密钥文件和随机生成的码表,只要使用不同的密钥文件和码表对明文进行加密处理,即便想要解密的一方获得了解密算法,在未知加密时所使用的密钥文件和码表的情况下,也不可能准确对该密文进行解密,从而有效解决了现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
附图说明
图1为本发明实施例提供的一种密文生成方法的方法流程图;
图2为本发明实施例提供的一种从生成的码表中查找分别对应于待加密的各明文字符的字符的码表方法流程图;
图3为本发明实施例提供的一种密文解密方法的方法流程图。
具体实施方式
为解决现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题,本发明实施例提供了一种密文生成方法、密文解密方法及加密解密装置。根据预设的密钥文件和串号生成方法获得加密串号,并随机生成码表;根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从生成的码表中查找分别对应于待加密的各明文字符的码表字符,并根据查找到的码表字符,生成密文。可见,本发明实施例提供的密文生成方法,密文的安全不仅依赖于加密算法,还依赖于预设的密钥文件和随机生成的码表,只要使用不同的密钥文件和码表对明文进行加密处理,即便想要解密的一方获得了解密算法,在未知加密时所使用的密钥文件和码表的情况下,也不可能准确对该密文进行解密,从而有效解决了现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限制本发明。并且在不冲突的情况下,本说明中的实施例及实施列中的特征可以互相结合。
实施例1
基于上述基本思想,本发明实施例提供的一种密文生成方法流程图如图1所示,具体包括以下步骤:
步骤11、根据预设的密钥文件和串号生成方法获得加密串号,并随机生成码表,该码表是由上述多个随机排列的码表字符所组成的字符串。
其中,预设的密钥文件可以为文本文件,该文件的内容可以是由一个不确定长度的数字和/或字母组合的字符串,长度只要不少于8位,不超过65535位即可。
串号生成的方法有很多种,例如可以将密钥文件中包含的字符个数作为加密串号;可以将密钥文件中包含的数字个数作为加密串号;也可以将密钥文件所对应的MD5文件(Message Digest Algorithm,信息摘要算法第5五版)中所包含的字符个数作为加密串号;还可以通过对密钥文件中包含的字符个数做一系列的数学运算,并将运算结果作为一个串号。例如,假设密钥文件中包含的字符个数用Key表示,再假设获取的一个密钥文件的Key为32,则可以对该Key做以下运算从而获得加密串号:先对Key执行运算32*13-7=409,再对409与参数100做求余运算,得到的余数9就可以是加密串号。其中,13、7、100都是预定的某些变量参数值。上述列举的几种串号生成方法都是相对比较简单的,在实际应用中,通常会采用比较复杂的数学运算来生成串号,但由于串号本身是一个无意义的数字,该数字的生成方法已是现有技术中比较成熟的一种技术,并且其并非是本发明对于现有技术的改进之处,因此本发明实施例中对该技术不再赘述。
对于码表来讲,码表一般是由随机生成的多个字符随机排列所组成的字符串。假设待加密的明文字符只为字母且区分字母的大小写,则码表就可以由26个大小写字母随机排列组成,即码表包含了52个随机排列的字母。
可选的,码表可以包括ASCII码(American Standard Code for InformationInterchange,美国信息交换标准代码)中除控制字符外的所有字符,且码表中包含的码表字符互不相同。
步骤12、根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从生成的码表中查找分别对应于待加密的各明文字符的码表字符。
步骤13、根据查找到的码表字符,生成密文。
可选的,分别针对每个待加密的明文字符,步骤12的实现方法可以如图2所示,具体包含以下子步骤:
步骤121、根据该明文字符,从码表中确定与该明文字符匹配一致的码表字符。
步骤122、根据确定出的码表字符在码表中的位置,确定码表中位于该位置与码表的第一指定端位置间的字符的个数。
其中,码表的第一指定端为沿指定的码表查找方向所确定出的码表的末端。
步骤123、判断执行步骤122所确定的字符的个数是否小于指定个数,在判断结果为否时,执行步骤124;在判断结果为是时,执行步骤125。
其中,指定个数为加密串码减去一所得的个数。
步骤124、按照预设的第一查找规则,沿指定的码表查找方向从码表中查找对应于该明文字符的字符。
其中,该第一查找规则可以为:查找到的码表字符在码表中的位置与确定出的码表字符所在位置之间相距的字符的个数等于指定个数;
步骤125、确定上述指定个数减去执行步骤122所确定的字符的个数所得的差值,并按照预设的第二查找规则,沿指定的码表查找方向从所述码表中查找对应于该明文字符的码表字符。
其中,第二查找规则可以为:查找到的码表字符在所述码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;所述第二指定端为沿所述指定的码表查找方向所确定出的码表的首端。
同样对于步骤12,可选的,该步骤还可以通过以下方法实现:
根据获得加密串号和待加密的各明文字符,将待加密的各明文字符进行重新排序,并获得重排明文字符,然后再根据加密串号和重排明文字符,沿指定的码表查找方向从生成的码表中查找分别对应于待加密的各明文字符的字符。举例来说,假设待加密的明文字符串为:asdf,加密串号为2,随机生成的码表为:qwertyauiopzxcvsbndmghfjkl。则根据获得加密串号和待加密的各明文字符,获得重排明文字符串可以为dfas;再假设指定的码表查找方向为从右往左,则沿指定的码表查找方向从生成的码表中查找对应于字符d的码表字符为b,对应于字符f的码表字符为g,对应于字符a的码表字符为t,对应于字符s的码表字符为c,那么针对待加密的明文字符串asdf中的每个字符,从生成的码表中选取的分别对应于字符a、s、d、f为码表字符b、g、t、c。
需要说明的是,除了上述两种方法之外,步骤12还可以通过很多种方法来实现,这里就不再一一列举。
综上所述,本发明实施例提供的一种密文生成方法,密文的安全不仅依赖于加密算法,还依赖于预设的密钥文件和随机生成的码表,只要使用不同的密钥文件和码表对明文进行加密处理,即便想要解密的一方获得了解密算法,在未知加密时所使用的密钥文件和码表的情况下,也不可能准确对该密文进行解密,从而有效解决了现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
对应于本发明实施例提供的一种密文生成方法,本发明实施例还提供了一种密文解密方法,该密文解密方法的方法流程图如图3所示,可以具体包括以下步骤:
步骤21、根据密钥文件和串号生成方法获得解密串号。
其中,该串号生成方法与密文生成方法中使用的“串号生成方法”相同。
步骤22、根据获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符。
其中,指定的码表查找方向与密文生成方法中使用的“指定的码表查找方向”可以相同,也可以相反。
步骤23、根据查找到的码表字符,生成解密文件。
具体的,如果指定的码表查找方向与密文生成方法中使用的“指定的码表查找方向”相同,分别针对每个密文字符,步骤22可以具体包含以下子步骤:
首先,根据该密文字符,从所述预先获得的码表中确定与该密文字符匹配一致的码表字符;
其次,根据确定出的码表字符在码表中的位置,确定所述码表中位于所述位置与码表的第一指定端位置间所包含的字符个数;其中,码表的第一指定端为沿指定的码表查找方向所确定出的码表的首端;
然后,判断所述字符个数是否小于指定个数;该指定个数为所述解密串码减去一所得的个数;
最后,在判断结果为否时,按照预设的第一查找规则,沿与指定的码表查找方向相反的方向从码表中查找对应于该明文字符的码表字符,其中,所述第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间的字符的个数等于所述指定个数;
在判断结果为是时,确定指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿与指定的码表查找方向相反的方向从码表中查找对应于该明文字符的码表字符,其中,第二查找规则包括:查找到的码表字符在码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;第二指定端为沿所述指定的码表查找方向所确定出的码表的末端。
如果指定的码表查找方向与密文生成方法中使用的“指定的码表查找方向”相反,分别针对每个密文字符,步骤22可以具体包含以下子步骤:
首先,根据该密文字符,从所述预先获得的码表中确定与该密文字符匹配一致的码表字符;
其次,根据确定出的码表字符在码表中的位置,确定所述码表中位于所述位置与码表的第一指定端位置间所包含的字符个数;其中,码表的第一指定端为沿指定的码表查找方向所确定出的码表的末端;
然后,判断所述字符个数是否小于指定个数;该指定个数为所述解密串码减去一所得的个数;
最后,在判断结果为否时,按照预设的第一查找规则,沿指定的码表查找方向从码表中查找对应于该明文字符的码表字符,其中,所述第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间的字符的个数等于所述指定个数;
在判断结果为是时,确定指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿指定的码表查找方向从码表中查找对应于该明文字符的码表字符,其中,第二查找规则包括:查找到的码表字符在码表中的位置与码表的第二指定端位置之间相距的字符的个数等于上述差值减去一所得的个数;第二指定端为沿所述指定的码表查找方向所确定出的码表的首端。
综上所述,本发明实施例提供的一种密文解密方法,解密密文不仅依赖于解密算法,还依赖于预设的密钥文件和预先获得的码表,因此想要解密的一方在不知道密钥文件和码表的情况下,即便获得了解密算法,也不可能准确对密文进行解密,从而有效解决了现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
实施例2
下面结合实例,具体说明本发明实施例提供的密文生成方法以及密文解密方法。
首先,对于码表,假设随机生成的码表为:
SboJU9#dL,O+a&sh:c/mpIj;*FE_V64]Dvz0uf7yCnM.~)t\rKxA<$NT=Rg`!B|PGZ{Yl"Hq'i[?^-%3}185we2X(QWk>
该码表包含了ASCII码中除控制字符外的所有字符,且码表中包含的字符互不相同。
将上述随机生成的码表组成一个“环形码”,即将码表的首端码表字符和末端码表字符相连,这样码表中的字符就按照原有次序排列成环形。
其次,对于密钥文件,它可以是一个UTF-8编码(UNICODE的一种变长字符编码,又称万国码)的文本。该文件的内容可以是由一个不确定长度的数字和/或字母组合的字符串,长度只要不少于8位,不超过65535位即可。例如预设的密钥文件可以为:1DB43E81B589B2DCAD9EB2821343F176,该密钥文件通常只由通信双方约定生成。
需要说明的是,每个密钥文件都有一个用于区别于其他密钥文件的MD5值,该MD5值与密钥文件是一一对应的关系,即如果某个密钥文件被修改了,则修改后的密钥文件对应的MD5值与修改前的密钥文件对应的MD5值是不同的。
然后,根据预设的密钥文件和串号生成方法获得加密串号,并结合上述由码表形成的“环形码”,获得的加密串号以及指定的码表查找方向,对该明文字符串中的各明文字符进行加密,该加密过程可以为:
先在“环形码”上找到待加密的明文字符所处的位置;再以该位置为起点,沿指定的码表查找方向偏移加密串号对应个数的字符;然后将偏移后得到的字符作为待加密的明文字符所对应的密文字符。
举例来说,假设根据该密钥文件和串号生成方法获得加密串号为55,待加密的明文字符串为“l1A90Oopx%#*^$”,再假设指定的码表查找方向为顺时针方向,则对于明文字符“l”,以其在“环形码”上所处的位置为起点,沿顺时针方向偏移55个字符,获得的码表字符为“6”,将码表字符“6”选取为明文字符“l”对应的密文字符;对于明文字符“1”,以其在“环形码”上所处的位置为起点,沿顺时针方向偏移55个字符,获得的码表字符为“.”,将码表字符“.”选取为明文字符“1”对应的密文字符;对于明文字符“A”,以其在“环形码”上所处的位置为起点,沿顺时针方向偏移55个字符,获得的码表字符为“a”,将码表字符“a”选取为明文字符“A”对应的密文字符;依此类推,最终获得的对应于待加密的明文字符串的密文为“6.a!QZR+CB%7s”。
假设甲方对待加密的明文字符串进行加密处理生成密文后,要将该密文传输给乙方,则甲方要先将包含了密文生成方法,加密所用的码表,串号生成方法以及指定的码表查找方向的函数库以及加密所用的密钥文件对应的MD5文件校验码发送给乙方,然后再将加密所用的密钥文件和密文发送给乙方。乙方获得密钥文件后,先读取该密钥文件对应的MD5值,并验证该MD5值与之前接收到MD5文件校验码是否一致,若验证一致,则说明密钥文件在传输过程中没有被修改过,即该密钥文件就是密文生成过程中所用的密钥文件。通常情况下,在验证完密钥文件的有效性之后,通信双方会将密钥文件安全保存。在验证完密钥文件的有效性之后,乙方先根据密钥文件和接收到的函数库中包含的串号生成方法获得解密串号;再根据获得的解密串号,接收到的函数库中包含的密文生成方法、加密所用的码表、指定的码表查找方向以及密文,分别确定对应于密文中包含的各密文字符的解密字符;最后根据确定出的各解密字符,生成解密文件。
具体的,假设乙方收到的密文为“6.a!QZR+CB%7s”,函数库中包含的“指定的码表查找方向”为加密时使用的码表查找方向,即顺时针方向,再假设乙方在验证完密钥文件的有效性后,根据密钥文件获得解密串号为55,则根据函数库中包含的加密所用的码表(即“环形码”)、密文生成方法以及解密串号55,对该密文中包含的每个密文字符进行解密,该解密过程为:先在“环形码”上找到每个密文字符所处的位置;再以该位置为起点,沿与“指定的码表查找方向”相反的方向(即逆时针方向)偏移解密串号对应个数的字符;然后将偏移后得到的码表字符作为每个密文字符所对应的解密字符。举例而言,对于密文字符“6”,以其在“环形码”上所处的位置为起点,沿逆时针方向偏移55个字符,获得的码表字符为“l”,则将码表字符“l”选取为密文字符“6”对应的解密字符;对于密文字符“.”,以其在“环形码”上所处的位置为起点,沿逆时针方向偏移55个字符,获得的码表字符为“1”,则将码表字符“1”选取为密文字符“.”对应的解密字符;对于密文字符“a”,以其在“环形码”上所处的位置为起点,沿逆时针方向偏移55个字符,获得的码表字符为“A”,则将码表字符“A”选取为密文字符“a”对应的解密字符;依此类推,最终获得的对应于密文“6.a!QZR+CB%7s”的解密文件为“l1A90Oopx%#*^$”。
由上述实例可知,本发明实施例提供的一种密文生成方法以及密文解密方法,密文的安全不仅依赖于加密算法,还依赖于预设的密钥文件和随机生成的码表,只要使用不同的密钥文件和码表对明文进行加密处理,即便想要解密的一方获得了解密算法,在未知加密时所使用的密钥文件和码表的情况下,也不可能准确对该密文进行解密,从而有效解决了现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
另外,本发明实施例还提供了生成码表的算法代码、加密算法代码以及解密算法代码,其中生成码表的算法代码如下:
加密算法代码如下:
解密算法代码如下:
对应于本发明实施例提供的一种密文生成方法、密文解密方法,本发明实施例还提供了一种加密、解密装置,其中,加密装置可以包括以下单元:
加密串号获得单元,用于根据预设的密钥文件和串号生成方法获得加密串号;
码表生成单元,用于随机生成码表,该码表是由多个随机排列的码表字符所组成的字符串;
字符查找单元,用于根据加密串号获得单元获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从码表生成单元生成的码表中查找分别对应于待加密的各明文字符的码表字符;并
密文生成单元,用于根据字符查找单元查找到的码表字符,生成密文。
其中,字符查找单元可以具体包括:
字符匹配子单元,用于分别针对每个待加密的明文字符,根据该明文字符,从码表中确定与该明文字符匹配一致的码表字符;
个数确定子单元,用于根据字符匹配子单元确定出的码表字符在码表中的位置,确定码表中位于上述位置与码表的第一指定端位置间的字符的个数;其中,码表的第一指定端为沿指定的码表查找方向所确定出的码表的末端;
判断子单元,用于判断个数确定子单元确定的字符的个数是否小于指定个数;其中,指定个数为所述加密串码减去一所得的个数;
第一查找子单元,用于在判断子单元判断结果为否时,按照预设的第一查找规则,沿指定的码表查找方向从码表中查找对应于该明文字符的码表字符,其中,第一查找规则包括:查找到的码表字符在码表中的位置与确定出的码表字符所在位置之间相距的字符的个数等于所述指定个数;
第二查找子单元,用于在判断子单元判断结果为是时,确定指定个数减去上述字符的个数所得的差值,并按照预设的第二查找规则,沿指定的码表查找方向从所述码表中查找对应于该明文字符的码表字符,其中,第二查找规则包括:查找到的码表字符在码表中的位置与码表的第二指定端位置之间相距的字符的个数等于上述差值减去一所得的个数;第二指定端为沿所述指定的码表查找方向所确定出的码表的首端。
可选的,码表具体包括:ASCII码中除控制字符外的所有字符;且码表中所包含的码表字符互不相同。
解密装置可以包括以下单元:
解密串号获得单元,用于根据密钥文件和串号生成方法获得解密串号;
解密字符查找单元,用于根据解密串号获得单元获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符;
解密文件生成单元,用于根据解密字符查找单元查找到的码表字符,生成解密文件。
其中,解密字符查找单元可以具体包括:
字符匹配子单元,用于分别针对密文中所包含的每个密文字符,根据该密文字符,从预先获得的码表中确定与该密文字符匹配一致的字符;
个数确定子单元,根据字符匹配子单元确定出的码表字符在码表中的位置,确定码表中位于上述位置与码表的第一指定端位置间所包含的字符个数;其中,所述码表的第一指定端为沿指定的码表查找方向所确定出的码表的首端;
判断子单元,用于判断个数确定子单元确定的字符个数是否小于指定个数;该指定个数为解密串码减去一所得的个数;
第一查找子单元,在判断子单元判断结果为否时,按照预设的第一查找规则,沿与指定的码表查找方向相反的方向从码表中查找对应于该明文字符的码表字符,其中,第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间相距的字符的个数等于所述指定个数;
第二查找子单元,用于在判断子单元判断结果为是时,确定指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿与指定的码表查找方向相反的方向从码表中查找对应于该明文字符的码表字符,其中,第二查找规则包括:查找到的码表字符在所述码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;该第二指定端为沿所述指定的码表查找方向所确定出的码表的末端。
综上所述,本发明实施例提供的一种加密、解密装置,密文的安全不仅依赖于加密算法,还依赖于预设的密钥文件和随机生成的码表,只要使用不同的密钥文件和码表对明文进行加密处理,即便想要解密的一方获得了解密算法,在未知加密时所使用的密钥文件和码表的情况下,也不可能准确对该密文进行解密,从而有效解决了现有技术中利用Java语言自带的底层加密算法对跨系统的口令或信息进行加密传输时存在的安全性不高的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种密文生成方法,其特征在于,包括:
根据预设的密钥文件和串号生成方法获得加密串号,并随机生成码表,所述码表是由多个随机排列的码表字符所组成的字符串;
根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从所述码表中查找分别对应于待加密的各明文字符的码表字符;并
根据查找到的码表字符,生成密文。
2.如权利要求1所述的方法,其特征在于,根据获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从所述码表中查找分别对应于待加密的各明文字符的码表字符,具体包括:
分别针对每个待加密的明文字符,执行下述步骤:
根据该明文字符,从所述码表中确定与该明文字符匹配一致的码表字符;
根据确定出的码表字符在码表中的位置,确定所述码表中位于所述位置与码表的第一指定端位置间的字符的个数,并判断所述字符的个数是否小于指定个数;其中,所述码表的第一指定端为沿指定的码表查找方向所确定出的码表的末端;所述指定个数为所述加密串码减去一所得的个数;
在判断结果为否时,按照预设的第一查找规则,沿所述指定的码表查找方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间相距的字符的个数等于所述指定个数;
在判断结果为是时,确定所述指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿所述指定的码表查找方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第二查找规则包括:查找到的字符在所述码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;所述第二指定端为沿所述指定的码表查找方向所确定出的码表的首端。
3.如权利要求1所述的方法,其特征在于,所述码表具体包括:ASCII码中除控制字符外的所有字符;且
码表中包含的码表字符互不相同。
4.一种密文解密方法,其特征在于,包括:
根据密钥文件和串号生成方法获得解密串号;
根据获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符;并
根据查找到的码表字符,生成解密文件。
5.如权利要求4所述的方法,其特征在于,根据获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符,具体包括:
分别针对密文中所包含的每个密文字符,执行下述步骤:
根据该密文字符,从所述预先获得的码表中确定与该密文字符匹配一致的码表字符;
根据确定出的码表字符在码表中的位置,确定所述码表中位于所述位置与码表的第一指定端位置间所包含的字符个数,并判断所述字符个数是否小于指定个数;其中,所述码表的第一指定端为沿指定的码表查找方向所确定出的码表的首端;所述指定个数为所述解密串码减去一所得的个数;
在判断结果为否时,按照预设的第一查找规则,沿与所述指定的码表查找方向相反的方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间相距的的字符的个数等于所述指定个数;
在判断结果为是时,确定所述指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿与所述指定的码表查找方向相反的方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第二查找规则包括:查找到的字符在所述码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;所述第二指定端为沿所述指定的码表查找方向所确定出的码表的末端。
6.一种加密装置,其特征在于,包括:
加密串号获得单元,用于根据预设的密钥文件和串号生成方法获得加密串号;
码表生成单元,用于随机生成码表,所述码表是由多个随机排列的码表字符所组成的字符串;
字符查找单元,用于根据所述加密串号获得单元获得的加密串号和待加密的各明文字符,沿指定的码表查找方向,从所述码表生成单元生成的码表中查找分别对应于待加密的各明文字符的码表字符;
密文生成单元,用于根据所述字符查找单元查找到的码表字符,生成密文。
7.如权利要求6所述的装置,其特征在于,字符查找单元具体包括:
字符匹配子单元,用于分别针对每个待加密的明文字符,执行根据该明文字符从所述码表中确定与该明文字符匹配一致的码表字符;
个数确定子单元,用于根据所述字符匹配子单元确定出的码表字符在码表中的位置,确定所述码表中位于所述位置与码表的第一指定端位置间的字符的个数;其中,所述码表的第一指定端为沿指定的码表查找方向所确定出的码表的末端;
判断子单元,用于判断所述个数确定子单元确定的字符的个数是否小于指定个数;所述指定个数为所述加密串码减去一所得的个数;
第一查找子单元,用于在所述判断子单元判断结果为否时,按照预设的第一查找规则,沿所述指定的码表查找方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间相距的字符的个数等于所述指定个数;
第二查找子单元,用于在所述判断子单元判断结果为是时,确定所述指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿所述指定的码表查找方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第二查找规则包括:查找到的码表字符在所述码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;所述第二指定端为沿所述指定的码表查找方向所确定出的码表的首端。
8.如权利要求6所述的装置,其特征在于,所述码表具体包括:ASCII码中除控制字符外的所有字符;且
码表中所包含的码表字符互不相同。
9.一种解密装置,其特征在于,包括:
解密串号获得单元,用于根据密钥文件和串号生成方法获得解密串号;
解密字符查找单元,用于根据所述解密串号获得单元获得的解密串号、预先获得的密文以及指定的码表查找方向,从预先获得的码表中查找分别对应于密文中所包含的各密文字符的码表字符;
解密文件生成单元,用于根据所述解密字符查找单元查找到的码表字符,生成解密文件。
10.如权利要求9所述的装置,其特征在于,所述解密字符查找单元具体包括:
字符匹配子单元,用于分别针对密文中所包含的每个密文字符,根据该密文字符,从所述预先获得的码表中确定与该密文字符匹配一致的字符;
个数确定子单元,根据所述字符匹配子单元确定出的码表字符在码表中的位置,确定所述码表中位于所述位置与码表的第一指定端位置间所包含的字符个数;其中,所述码表的第一指定端为沿指定的码表查找方向所确定出的码表的首端;
判断子单元,用于判断所述个数确定子单元确定的字符个数是否小于指定个数;所述指定个数为所述解密串码减去一所得的个数;
第一查找子单元,在所述判断子单元判断结果为否时,按照预设的第一查找规则,沿与所述指定的码表查找方向相反的方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第一查找规则包括:查找到的码表字符在所述码表中的位置与所述确定出的码表字符所在位置之间相距的字符的个数等于所述指定个数;
第二查找子单元,用于在所述判断子单元判断结果为是时,确定所述指定个数减去所述字符的个数所得的差值,并按照预设的第二查找规则,沿与所述指定的码表查找方向相反的方向从所述码表中查找对应于该明文字符的码表字符,其中,所述第二查找规则包括:查找到的码表字符在所述码表中的位置与码表的第二指定端位置之间相距的字符的个数等于所述差值减去一所得的个数;所述第二指定端为沿所述指定的码表查找方向所确定出的码表的末端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210553366.2A CN103873250B (zh) | 2012-12-18 | 2012-12-18 | 一种密文生成方法、密文解密方法及加密解密装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210553366.2A CN103873250B (zh) | 2012-12-18 | 2012-12-18 | 一种密文生成方法、密文解密方法及加密解密装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873250A true CN103873250A (zh) | 2014-06-18 |
CN103873250B CN103873250B (zh) | 2017-06-20 |
Family
ID=50911400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210553366.2A Active CN103873250B (zh) | 2012-12-18 | 2012-12-18 | 一种密文生成方法、密文解密方法及加密解密装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103873250B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104113410A (zh) * | 2014-07-04 | 2014-10-22 | 北京思特奇信息技术股份有限公司 | 一种基于多表加密法的数据加密传输方法及装置 |
CN105005733A (zh) * | 2015-06-11 | 2015-10-28 | 天地融科技股份有限公司 | 一种字符显示方法、系统及智能密钥设备 |
CN105812146A (zh) * | 2016-05-26 | 2016-07-27 | 王云鹏 | 一种基于md5的双向加密数据保护方法 |
CN107634832A (zh) * | 2017-09-12 | 2018-01-26 | 云南撇捺势信息技术有限公司 | 字符串加密、验证方法、装置、计算机可读存储介质 |
CN111222151A (zh) * | 2019-12-31 | 2020-06-02 | 北京指掌易科技有限公司 | 移动端应用目录保护方法和装置 |
CN112368973A (zh) * | 2018-07-04 | 2021-02-12 | I&G科技阿玛迪奥吉安卡罗股份有限公司 | 以不易破损的方式编码、传输和/或存储和解码数字信息的方法 |
CN115062279A (zh) * | 2022-07-12 | 2022-09-16 | 青岛中科曙光科技服务有限公司 | 源码加解密方法、设备和存储介质 |
CN115085924A (zh) * | 2022-08-22 | 2022-09-20 | 锐创软件技术(启东)有限公司 | 一种基于霍夫曼编码的计算机信息传输加密系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633070A (zh) * | 2004-10-29 | 2005-06-29 | 徐子杰 | 一种数据加密解密方法及加密解密装置 |
CN1863042A (zh) * | 2005-12-13 | 2006-11-15 | 华为技术有限公司 | 对信息进行加解密的方法 |
CN101826961A (zh) * | 2010-05-25 | 2010-09-08 | 上海复旦天臣新技术有限公司 | 数据传输加解密方法、装置及系统 |
US20100332732A1 (en) * | 2009-06-29 | 2010-12-30 | Mediatek Inc. | Memory systems and mapping methods thereof |
CN102096789A (zh) * | 2011-02-23 | 2011-06-15 | 上海帝埃碧化学科技有限公司 | 电子文档的保密装置 |
CN102254125A (zh) * | 2010-05-21 | 2011-11-23 | 腾讯科技(北京)有限公司 | Elf文件加密方法及系统 |
CN102456108A (zh) * | 2011-06-22 | 2012-05-16 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
-
2012
- 2012-12-18 CN CN201210553366.2A patent/CN103873250B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633070A (zh) * | 2004-10-29 | 2005-06-29 | 徐子杰 | 一种数据加密解密方法及加密解密装置 |
CN1863042A (zh) * | 2005-12-13 | 2006-11-15 | 华为技术有限公司 | 对信息进行加解密的方法 |
US20100332732A1 (en) * | 2009-06-29 | 2010-12-30 | Mediatek Inc. | Memory systems and mapping methods thereof |
CN102254125A (zh) * | 2010-05-21 | 2011-11-23 | 腾讯科技(北京)有限公司 | Elf文件加密方法及系统 |
CN101826961A (zh) * | 2010-05-25 | 2010-09-08 | 上海复旦天臣新技术有限公司 | 数据传输加解密方法、装置及系统 |
CN102096789A (zh) * | 2011-02-23 | 2011-06-15 | 上海帝埃碧化学科技有限公司 | 电子文档的保密装置 |
CN102456108A (zh) * | 2011-06-22 | 2012-05-16 | 中标软件有限公司 | 一种ibus拼音码表的加密方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104113410A (zh) * | 2014-07-04 | 2014-10-22 | 北京思特奇信息技术股份有限公司 | 一种基于多表加密法的数据加密传输方法及装置 |
CN105005733A (zh) * | 2015-06-11 | 2015-10-28 | 天地融科技股份有限公司 | 一种字符显示方法、系统及智能密钥设备 |
CN105812146A (zh) * | 2016-05-26 | 2016-07-27 | 王云鹏 | 一种基于md5的双向加密数据保护方法 |
CN107634832A (zh) * | 2017-09-12 | 2018-01-26 | 云南撇捺势信息技术有限公司 | 字符串加密、验证方法、装置、计算机可读存储介质 |
CN107634832B (zh) * | 2017-09-12 | 2018-11-09 | 云南撇捺势信息技术有限公司 | 字符串加密、验证方法、装置、计算机可读存储介质 |
CN112368973A (zh) * | 2018-07-04 | 2021-02-12 | I&G科技阿玛迪奥吉安卡罗股份有限公司 | 以不易破损的方式编码、传输和/或存储和解码数字信息的方法 |
CN111222151A (zh) * | 2019-12-31 | 2020-06-02 | 北京指掌易科技有限公司 | 移动端应用目录保护方法和装置 |
CN115062279A (zh) * | 2022-07-12 | 2022-09-16 | 青岛中科曙光科技服务有限公司 | 源码加解密方法、设备和存储介质 |
CN115085924A (zh) * | 2022-08-22 | 2022-09-20 | 锐创软件技术(启东)有限公司 | 一种基于霍夫曼编码的计算机信息传输加密系统 |
CN115085924B (zh) * | 2022-08-22 | 2022-12-27 | 锐创软件技术(启东)有限公司 | 一种基于霍夫曼编码的计算机信息传输加密系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103873250B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873250A (zh) | 一种密文生成方法、密文解密方法及加密解密装置 | |
US8345876B1 (en) | Encryption/decryption system and method | |
CN106599723B (zh) | 一种文件加密方法及装置、文件解密方法及装置 | |
CN102163268B (zh) | 在执行期间验证软件代码的完整性的方法和设备 | |
US9397830B2 (en) | Method and apparatus for encrypting and decrypting data | |
CN115051798B (zh) | 一种随机数生成方法、装置、电子设备及存储介质 | |
CN105827582B (zh) | 一种通信加密方法、装置和系统 | |
JP2018502524A (ja) | 情報に対する暗号化制御、情報解析の方法、システム及び端末 | |
CN103927357A (zh) | 一种用于数据库的数据加密及检索方法 | |
CN103095449B (zh) | 一种基于流密码的动态加密解密方法 | |
GB2520861A (en) | Block encryption/decryption apparatus and method | |
Limbong et al. | Testing the classic caesar cipher cryptography using of matlab | |
CN111670443B (zh) | 集成电路个性化 | |
CN111859435B (zh) | 一种数据安全处理方法及装置 | |
CN110704854A (zh) | 针对文本数据保留格式的流式加密方法 | |
CN115795514A (zh) | 一种隐私信息检索方法、装置及系统 | |
CN112887297B (zh) | 保护隐私的差异数据确定方法、装置、设备及系统 | |
EP3104548B1 (en) | Method and system for facilitating secure communication | |
CN114124359A (zh) | 保留格式加密数据的方法、装置、电子设备及存储介质 | |
US20160241387A1 (en) | System and method for manipulating both the plaintext and ciphertext of an encryption process prior to dissemination to an intended recipient | |
WO2017142563A1 (en) | Encryption methods | |
CN103457721B (zh) | 一种批量生成密码的方法及装置 | |
CN116055067B (zh) | 一种弱口令检测的方法、装置、电子设备及介质 | |
US20180316512A1 (en) | Authenticating a secondary device based on encrypted tables | |
CN109002698B (zh) | 一种用户密码的安全输入方法及装置 |
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 |