CN104767622B - 加密方法及装置 - Google Patents
加密方法及装置 Download PDFInfo
- Publication number
- CN104767622B CN104767622B CN201510188144.9A CN201510188144A CN104767622B CN 104767622 B CN104767622 B CN 104767622B CN 201510188144 A CN201510188144 A CN 201510188144A CN 104767622 B CN104767622 B CN 104767622B
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- sequence
- key
- 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.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种加密方法,该加密方法包括:获取待加密数据;根据所述待加密数据和预设的密钥计算加密数据序列;确定所述加密数据序列在所述密钥中对应的加密字符;基于所述加密字符生成所述待加密数据对应的加密数据。本发明还公开了一种加密装置。本发明提高了加密的效率。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及加密方法及装置。
背景技术
随着网络化、信息化的高速发展,信息资源的安全访问问题日益突出。加密是数据安全的核心问题之一,目前国内外已经设计出了大量的加解密算法和协议。但现有的各种加解密算法过程都比较复杂、效率较低。
发明内容
本发明的主要目的在于提出一种加密方法及装置,旨在解决现有的加解密算法效率低的技术问题。
为实现上述目的,本发明提供的一种加密方法,所述加密方法包括以下步骤:
获取待加密数据;
根据所述待加密数据和预设的密钥计算加密数据序列;
确定所述密钥与所述加密数据序列对应的加密字符;
基于所述加密字符生成所述待加密数据对应的加密数据。
优选地,所述基于所述加密字符生成所述待加密数据对应的加密数据的步骤之后,还包括:
确定所述密钥与加密数据的每个加密字符对应的数据;
根据确定的所述数据生成解密数据序列;
根据所述解密数据序列计算所述加密数据对应的解密数据。
优选地,所述根据所述待加密数据和预设的密钥计算加密数据序列的步骤包括:
步骤A、采用当前待加密数据除以所述密钥的进制数,获得商数以及余数;
步骤B、将计算获得的商数作为当前待加密数据,并继续执行所述步骤A,直至计算获取的商数为零;
步骤C、将每次计算获取的余数排列成所述加密数据序列。
优选地,所述将每次计算获取的余数排列成所述加密数据序列的步骤包括:
将每次计算获取的余数按照各个余数获取顺序的逆序排列生成所述加密数据序列。
优选地,所述根据所述解密数据序列计算所述加密数据对应的解密数据的步骤包括:
步骤D、计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值;
步骤E、将计算获得的和值作为当前加密数据,并继续执行所述步骤D,直至所述解密数据序列中所有的数据均计算和值完成;
步骤F、将最终计算获得的和值作为所述加密数据对应的解密数据。
此外,为实现上述目的,本发明还提出一种加密装置,所述加密装置包括:
获取模块,用于获取待加密数据;
计算模块,用于根据所述待加密数据和预设的密钥计算加密数据序列;
第一确定模块,用于确定所述密钥与所述加密数据序列对应的加密字符;
加密模块,用于基于所述加密字符生成所述待加密数据对应的加密数据。
优选地,所述加密装置还包括:
第二确定模块,用于确定所述密钥与加密数据的每个加密字符对应的数据;
生成模块,用于根据确定的所述数据生成解密数据序列;
解密模块,用于根据所述解密数据序列计算所述加密数据对应的解密数据。
优选地,所述计算模块包括:
第一计算单元,用于采用当前待加密数据除以所述密钥的进制数,获得商数以及余数;
第一控制单元,用于将计算获得的商数作为当前待加密数据,并控制第一计算单元继续采用当前待加密数据除以所述密钥的进制数,获得商数以及余数,直至计算获取的商数为零;
第一处理单元,用于将第一计算单元每次计算获取的余数排列成所述加密数据序列。
优选地,所述第一处理单元,还用于将每次计算获取的余数按照余数获取顺序的逆序排列生成所述加密数据序列。
优选地,所述解密模块包括:
第二计算单元,用于计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值;
第二控制单元,用于将计算获得的和值作为当前加密数据,并控制第二计算单元继续计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值,直至所述解密数据序列中所有的数据均计算和值完成;
第二处理单元,用于将第二计算单元最终计算获得的和值作为所述加密数据对应的解密数据。
本发明提出的加密方法及装置,首先获取待加密数据,根据所述待加密数据和预设的密钥计算加密数据序列,然后确定所述密钥与所述加密数据序列对应的加密字符,最后基于所述加密字符生成所述待加密数据对应的加密数据,本发明的方案提高了加密的效率。
附图说明
图1为实现本发明各个实施例的终端的硬件结构示意图;
图2为本发明加密方法第一实施例的流程示意图;
图3为本发明加密方法第二实施例的流程示意图;
图4为本发明加密装置第一实施例的功能模块示意图;
图5为本发明加密装置第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
本发明实施例提供的一种终端1100的硬件结构示意图,如图1所示,该终端1100包括:
处理器1110,是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案S10-S14执行的集成电路。
存储器1120,用于完成终端的各种软件程序的存储、数据的存储,以及软件程序的运行等。该存储器1120可以是RAM,EPROM,SSD,SD卡,HD硬盘中的一种或者多种。本发明实施例提供的视频文件和特效,也在存储器1120上运行和存储。
传感器1130,用于测量和记录数据,该传感器1130可以包括下列中的任一种或多种:摄像头、GPS模块、重力传感器、加速度传感器、距离传感器、光学传感器、麦克风、扬声器。
收发电路1140,用于提供通信功能,包括蜂窝网络(GSM/UMTS/LTE/CDMA等)、无线局域网(WLAN)、近距离通信(NFC)、蓝牙等中的一种或者多种。
电源1150,用于提供直流供电,或者将交流供电转换成直流供电。
I/O接口电路1160,用于提供对外接口。可选地,该I/O接口电路1160可以包括下列接口中的任一种或多种:USB接口、SD卡接口、按键接口。
显示器1170,可以是终端的显示屏和/或触摸屏,在显示屏的显示视频文件和特效;触摸屏用于接收用户触摸操作并转换成用户操作指令。
I/O控制电路1180,用于控制各种输入输出电路部件之间的数据交互,特别地,例如处理器1110与I/O接口电路1160、显示器1170之间的数据交互。
基于上述终端硬件结构,提出本发明加密方法各个实施例。
参照图2,图2为本发明加密方法第一实施例的流程示意图。
在本实施例中,该加密方法包括以下步骤:
步骤S10,获取待加密数据;
本实施例中,在用户需要对数据库表中的关键数据或者其他关键数据信息进行加密保护时,当用户输入或者选择待加密数据并发送加密指令,在接收到所述加密指令时,获取所述待加密数据。
步骤S20,根据所述待加密数据和预设的密钥计算加密数据序列;
基于步骤S10获取的待加密数据以及预设的密钥,首先计算获得一组加密数据序列,以根据所述加密数据序列获得所述待加密数据对应的加密数据。本实施例中,所述预设的密钥为一串无序不重复字符,可由0-9中的数字,以及A-Z和a-z中区分大小写的英文字母组成。本领域技术人员可以理解的是,所述预设的密钥可以根据所述待加密数据的实际情况进行灵活更改设置。具体地,所述步骤S20包括:
步骤A、采用当前待加密数据除以所述密钥的进制数,获得商数以及余数;
步骤B、将计算获得的商数作为当前待加密数据,并继续执行所述步骤A,直至计算获取的商数为零;
步骤C、将每次计算获取的余数排列成所述加密数据序列。
基于获取的待加密数据以及预设的密钥,首先计算所述待加密数据与所述密钥的进制数相除的结果,获得第一个商数以及第一个余数。然后将获得的第一个商数作为当前待加密数据,计算当前待加密数据与所述密钥的进制数相除的结果,也即计算所获得的第一个商数与所述密钥的进制数相除的结果,获得第二个商数以及第二个余数。依照上述方法,将获得的第二个商数作为当前待加密数据,计算当前待加密数据与所述密钥的进制数相除的结果,也即计算所获得的第二个商数与所述密钥的进制数相除的结果,获得第三个商数以及第三个余数。依此将计算获得的商数作为当前待加密数据,然后采用所述当前待加密数据除以所述密钥的进制数,获得商数以及余数,直至最后计算获取的商数为零时,终止计算过程。将每次计算获得的各个余数排列成一个数据序列,也即生成加密数据序列。优选地,在本实施例中将所述各个余数按照计算过程中各个余数获取顺序的逆序排列生成所述加密数据序列。本领域技术人员可以理解的是,还可以将所述各个余数按照其他顺序排列生成所述加密数据序列,例如可以按照在计算过程中各个余数的获取顺序排列生成所述加密数据序列。
步骤S30,确定所述密钥与所述加密数据序列对应的加密字符;
通过步骤S20获得加密数据序列后,基于所述预设的密钥依次确定所述加密数据序列中每个数据对应的加密字符。密钥更改时,所述加密数据序列中的数据对应的加密字符也相应会更改。
步骤S40,基于所述加密字符生成所述待加密数据对应的加密数据。
在确定了所述加密数据序列的各个数据基于所述预设的密钥对应的加密字符后,将各个所述加密字符按照特定顺序组合生成所述待加密数据对应的加密数据。优选地,在本实施例中按照每个加密字符对应的数据在所述加密数据序列中的排列顺序将各个所述加密字符组合生成所述加密数据,也即将各个加密字符按照其对应数据在所述加密数据序列中的排列顺序组合生成加密数据。本领域技术人员可以理解的是,确定所述加密数据序列中各个数据基于所述预设的密钥对应的加密字符后,也可以将各个加密字符按照其他顺序组合生成加密数据。
下面以一具体实例对本发明的加密方法进行详细说明:
例如,获取的所述待加密数据为2147483647,所述预设的密钥为由0-9的10个数字和A-Z、a-z的52个区分大小写的英文字母组成,也即本实例中预设的密钥的进制数为62。所述预设的密钥如表1所示:
表1
g | l | 9 | 3 | W | f | i | 1 | A | J | P | z | p | y | R | O | a | N | q | o | Q |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
Z | S | X | K | b | c | H | U | F | h | s | 7 | Y | d | L | 6 | e | v | n | k | G |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
w | 5 | j | E | C | 4 | 2 | 8 | M | B | D | T | u | t | V | x | r | I | 0 | m | |
42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
在该具体实例中,根据所述待加密数据2147483647以及所述预设的密钥,生成所述待加密数据2147483647对应的加密数据的步骤包括:
首先计算所述待加密数据2147483647与预设的密钥的进制数62相除的结果,获得第一个商数为34636833,以及第一个余数为1。然后将获得的第一个商数34636833作为当前待加密数据,计算所获得的第一个商数34636833与预设的密钥的进制数62相除的结果,获得第二个商数为558658,以及第二个余数为37。依照上述方法,将获得的第二个商数558658作为当前待加密数据,计算所获得的第二个商数558658与预设的密钥的进制数62相除的结果,获得第三个商数为9010,以及第三个余数为38。依此将计算获得的商数作为当前待加密数据,然后采用所述当前待加密数据除以预设的密钥的进制数62,获得商数以及余数,直至最后计算获取的商数为零时,终止计算过程。通过上述方法依次计算获得六个余数,第一个余数为1,第二个余数为37,第三个余数为38,第四个余数为20,第五个余数为21,第六个余数为2。将每次计算获得的各个余数按照计算过程中各个余数获取顺序的逆序排列生成所述加密数据序列,也即生成的所述加密数据序列为{2,21,20,38,37,1}。
在生成加密数据序列{2,21,20,38,37,1}后,根据预设的密钥依次确定所述加密数据序列{2,21,20,38,37,1}中每个数据对应的加密字符。加密数据序列中第一个数据2基于预设的密钥对应的加密字符为9,第二个数据21基于预设的密钥对应的加密字符为Z,第三个数据20基于预设的密钥对应的加密字符为Q,第四个数据38基于预设的密钥对应的加密字符为v,第五个数据37基于预设的密钥对应的加密字符为e,第六个数据1基于预设的密钥对应的加密字符为l。
在确定了加密数据序列{2,21,20,38,37,1}中各个数据基于预设的密钥对应的加密字符后,按照每个加密字符对应的数据在所述加密数据序列中的排列顺序将各个加密字符组合生成加密数据,也即将各个加密字符按照其对应数据在所述加密数据序列{2,21,20,38,37,1}中的排列顺序组合生成加密数据为9ZQvel,即所述待加密数据2147483647基于预设的密钥的加密数据为9ZQvel。通过本实施例的加密方法实现了将长数值字段的长度进行压缩。
对本实施例中的加密方法和现有AES算法进行测试比较,对同一数值10175883654进行加密,采用AES算法对该数值进行105次的加密耗时在1000ms以上,而采用本发明的加密方法对该数值进行105次的加密耗时不到25ms,本发明的加密方法比AES算法效率高出40倍以上。
本实施例提出的方案,在获取待加密数据后,根据所述待加密数据和预设的密钥计算加密数据序列,然后确定所述密钥与所述加密数据序列对应的加密字符,最后基于所述加密字符生成所述待加密数据对应的加密数据,不仅实现了保护关键数据不被轻易识别,而且该加密方法简单,加密效率高,容易在各个开发平台上进行移植。
进一步地,参照图3,基于第一实施例提出本发明加密方法第二实施例,在本实施例中,所述步骤S40之后还包括:
步骤S50,确定所述密钥与加密数据的每个加密字符对应的数据;
在本实施例中,要对通过第一实施例中的加密方法得到的加密数据进行解密时,首先基于同一密钥确定该加密数据中的每个加密字符对应的数据。解密时必须与加密时对应同一个密钥,才能得到正确的解密数据。
步骤S60,根据确定的所述数据生成解密数据序列;
通过步骤S50获取到加密数据的各个加密字符基于上述密钥对应的数据后,将获取的各个数据排列生成解密数据序列。优选地,在本实施例中按照各个数据对应的加密字符在所述加密数据中的排列顺序,将各个数据排列生成解密数据序列。本领域技术人员可以理解的是,还可以将获取的各个数据按照其他顺序排列生成数据序列,例如按照各个数据对应的加密字符在所述加密数据中排列顺序的逆序排列生成解密数据序列。
步骤S70,根据所述解密数据序列计算所述加密数据对应的解密数据。
获得解密数据序列后,根据所述解密数据序列计算出加密数据基于密钥对应的解密数据。具体地,所述步骤S70包括:
步骤D、计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值;
步骤E、将计算获得的和值作为当前加密数据,并继续执行所述步骤D,直至所述解密数据序列中所有的数据均计算和值完成;
步骤F、将最终计算获得的和值作为所述加密数据对应的解密数据。
本实施例中,计算解密数据时设置一初始值0,首先计算所述初始值0与所述密钥的进制数的乘积值,获得该乘积值为0,然后计算该乘积值0与获得的解密数据序列中的第一个数据的和值,将该和值作为当前加密数据。然后计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中的第二个数据的和值,将所述和值作为当前加密数据。再计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中的第三个数据的和值,再将所述和值作为当前加密数据。依此方法计算和值,直至所述解密数据序列中所有的数据均计算和值完成,终止计算过程。将最后一次计算获得的和值作为加密数据基于所述密钥对应的解密数据。
下面以第一实施例中的具体实例里提供的密钥,以及通过第一实施例的加密方法获得的加密数据9ZQvel为例对本实施例进行详细说明:
根据加密数据9ZQvel以及表1的密钥,首先确定该加密数据9ZQvel的每个加密字符基于所述密钥对应的数据。该加密数据9ZQvel的第一个加密字符9基于所述密钥对应的数据为2,第二个加密字符Z基于所述密钥对应的数据为21,第三个加密字符Q基于所述密钥对应的数据为20,第四个加密字符v基于所述密钥对应的数据为38,第五个加密字符e基于所述密钥对应的数据为37,第六加密字符l基于所述密钥对应的数据为1。然后将获取的各个数据按照其对应的加密字符在加密数据9ZQvel中的排列顺序排列生成解密数据序列,获得解密数据序列为{2,21,20,38,37,1}。
在获得解密数据序列{2,21,20,38,37,1}后,首先计算初始值0与所述密钥的进制数62的乘积值,获得乘积值为0,然后计算所述乘积值0与获得的解密数据序列中的第一个数据2的和值为2,将该和值2作为当前加密数据。然后计算当前加密数据2与所述密钥的进制数62的乘积值为124,并计算所述乘积值124与解密数据序列中的第二个数据21的和值为145,将所述和值145作为当前加密数据。再计算当前加密数据145与所述密钥的进制数62的乘积值为8990,并计算所述乘积值8990与解密数据序列中的第三个数据20的和值为9010,再将所述和值9010作为当前加密数据。依此方法计算和值,直至所述解密数据序列中所有的数据均计算和值完成,终止计算过程。通过上述方法计算获得的最后和值为2147483647,将该最后计算获得的和值2147483647作为加密数据9ZQvel基于所述密钥对应的解密数据,也即通过本实施例的方法获得加密数据9ZQvel基于所述密钥对应的解密数据为2147483647。可知,该获得的解密数据与最初的待加密数据是一致的,验证了本发明的加密方法的可行性。
本实施例提出的方案,首先确定所述密钥与加密数据的每个加密字符对应的数据,根据确定的所述数据生成解密数据序列,然后根据所述解密数据序列计算所述加密数据对应的解密数据。本实施例的方案不仅实现了保护关键数据不被轻易识别,对关键数据进行加密,而且还实现了准确地获得加密数据对应的解密数据。
本发明进一步提供一种加密装置,参照图4,图4为本发明加密装置第一实施例的功能模块示意图。
在本实施例中,所述加密装置包括:
获取模块10,用于获取待加密数据;
本实施例中,在用户需要对数据库表中的关键数据或者其他关键数据信息进行加密保护时,当用户输入或者选择待加密数据并发送加密指令,获取模块10在接收到所述加密指令时,获取所述待加密数据。
计算模块20,用于根据所述待加密数据和预设的密钥计算加密数据序列;获取模块10获取待加密数据后,计算模块20首先根据所述待加密数据以及预设的密钥计算获得一组加密数据序列,以供加密模块40根据所述加密数据序列获得所述待加密数据对应的加密数据。本实施例中,所述预设的密钥为一串无序不重复字符,可由0-9中的数字,以及A-Z和a-z中区分大小写的英文字母组成。本领域技术人员可以理解的是,所述预设的密钥可以根据所述待加密数据的实际情况进行灵活更改设置。具体地,所述计算模块20包括:
第一计算单元,用于采用当前待加密数据除以所述密钥的进制数,获得商数以及余数;
第一控制单元,用于将计算获得的商数作为当前待加密数据,并控制计算单元继续采用当前待加密数据除以所述密钥的进制数,获得商数以及余数,直至计算获取的商数为零;
第一处理单元,用于将第一计算单元每次计算获取的余数排列成所述加密数据序列。
根据所述待加密数据以及预设的密钥,第一计算单元计算所述待加密数据与所述密钥的进制数相除的结果,获得第一个商数以及第一个余数。然后第一控制单元将获得的第一个商数作为当前待加密数据,控制第一计算单元计算当前待加密数据与所述密钥的进制数相除的结果,也即计算所获得的第一个商数与所述密钥的进制数相除的结果,获得第二个商数以及第二个余数。第一控制单元将获得的第二个商数作为当前待加密数据,控制第一计算单元计算当前待加密数据与所述密钥的进制数相除的结果,也即计算所获得的第二个商数与所述密钥的进制数相除的结果,获得第三个商数以及第三个余数。第一控制单元将计算获得的商数作为当前待加密数据,并控制第一计算单元采用所述当前待加密数据除以所述密钥的进制数,获得商数以及余数,直至最后计算获取的商数为零时,终止计算过程。第一处理单元将第一计算单元每次计算获得的各个余数排列成一个数据序列,也即生成加密数据序列。优选地,在本实施例中第一处理单元将所述各个余数按照计算过程中各个余数获取顺序的逆序排列生成所述加密数据序列。本领域技术人员可以理解的是,第一处理单元还可以将所述各个余数按照其他顺序排列生成所述加密数据序列,例如可以按照在计算过程中各个余数的获取顺序排列生成所述加密数据序列。
第一确定模块30,用于确定所述密钥与所述加密数据序列对应的加密字符;
通过计算模块20计算获得加密数据序列后,第一确定模块30基于所述预设的密钥依次确定所述加密数据序列中每个数据对应的加密字符。密钥更改时,第一确定模块30确定的所述加密数据序列中的数据对应的加密字符也相应会更改。
加密模块40,用于基于所述加密字符生成所述待加密数据对应的加密数据。
在第一确定模块30确定了所述加密数据序列的各个数据基于所述预设的密钥对应的加密字符后,加密模块40将各个所述加密字符按照特定顺序组合生成所述待加密数据对应的加密数据。优选地,在本实施例中加密模块40按照每个加密字符对应的数据在所述加密数据序列中的排列顺序将各个所述加密字符组合生成所述加密数据,也即将各个加密字符按照其对应数据在所述加密数据序列中的排列顺序组合生成加密数据。本领域技术人员可以理解的是,第一确定模块30确定所述加密数据序列中各个数据基于所述预设的密钥对应的加密字符后,加密模块40也可以将各个加密字符按照其他顺序组合生成加密数据。
具体地,该加密装置的各个功能模块的详细工作过程可参照方法实施例所述,在此就不在赘述。
本实施例提出的方案,获取模块10获取待加密数据后,计算模块20根据所述待加密数据和预设的密钥计算加密数据序列,第一确定模块30确定所述密钥与所述加密数据序列对应的加密字符,加密模块40基于所述加密字符生成所述待加密数据对应的加密数据。本实施例的加密装置不仅实现了保护关键数据不被轻易识别,而且该加密装置的加密效率高,容易在各个开发平台上进行移植。
进一步地,参照图5,基于第一实施例提出本发明加密装置第二实施例,在本实施例中,所述加密装置还包括:
第二确定模块50,用于确定所述密钥与加密数据的每个加密字符对应的数据;
在本实施例中,要对通过第一实施例的加密装置获得的加密数据进行解密时,首先第二确定模块50基于同一密钥确定加密数据中的每个加密字符对应的数据。解密必须与加密对应同一个密钥,才能确保得到正确的解密数据。
生成模块60,用于根据确定的所述数据生成解密数据序列;
通过第二确定模块50获取到加密数据的各个加密字符基于上述密钥对应的数据后,生成模块60将获取到的各个数据排列生成解密数据序列。优选地,在本实施例中生成模块60按照各个数据对应的加密字符在所述加密数据中的排列顺序,将各个数据排列生成解密数据序列。本领域技术人员可以理解的是,生成模块60还可以将获取的各个数据按照其他顺序排列生成数据序列,例如按照各个数据对应的加密字符在所述加密数据中排列顺序的逆序排列生成解密数据序列。
解密模块70,用于根据所述解密数据序列计算所述加密数据对应的解密数据。
通过生成模块60获得解密数据序列后,解密模块70根据所述解密数据序列计算出加密数据基于密钥对应的解密数据。具体地,所述解密模块70包括:
第二计算单元,用于计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值;
第二控制单元,用于将计算获得的和值作为当前加密数据,并控制第二计算单元继续计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值,直至所述解密数据序列中所有的数据均计算和值完成;
第二处理单元,用于将第二计算单元最终计算获得的和值作为所述加密数据对应的解密数据。
本实施例中,第二计算单元预设一初始值0,首先计算所述初始值0与所述密钥的进制数的乘积值,获得该乘积值为0,然后计算该乘积值0与获得的解密数据序列中的第一个数据的和值,第二控制单元将该和值作为当前加密数据。然后第二控制单元控制第二计算单元计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中的第二个数据的和值,第二控制单元将所述和值作为当前加密数据。第二控制单元再控制第二计算单元计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中的第三个数据的和值,第二控制单元将所述和值作为当前加密数据,控制第二计算单元计算和值,直至所述解密数据序列中所有的数据均计算和值完成,终止计算过程。第二处理单元将最后一次计算获得的和值作为加密数据基于所述密钥对应的解密数据。
本实施例提出的方案,第二确定模块50确定所述密钥与加密数据的每个加密字符对应的数据,生成模块60根据确定的所述数据生成解密数据序列,解密模块70根据所述解密数据序列计算所述加密数据对应的解密数据。本实施例的方案不仅实现了保护关键数据不被轻易识别,对关键数据进行加密,而且还实现了准确地获得加密数据对应的解密数据。
通过以上的实施方式的描述,本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种加密方法,其特征在于,所述加密方法包括步骤:
获取待加密数据;
根据所述待加密数据和预设的密钥计算加密数据序列;其中,所述密钥为一串无序不重复字符;
所述根据所述待加密数据和预设的密钥计算加密数据序列的步骤包括:
步骤A、采用当前待加密数据除以所述密钥的进制数,获得商数以及余数;其中,所述进制数为所述密钥的字符个数;
步骤B、将计算获得的商数作为当前待加密数据,并继续执行所述步骤A,直至计算获取的商数为零;
步骤C、将每次计算获取的余数排列成所述加密数据序列;
确定所述密钥与所述加密数据序列对应的加密字符;
基于所述加密字符生成所述待加密数据对应的加密数据。
2.如权利要求1所述的加密方法,其特征在于,所述基于所述加密字符生成所述待加密数据对应的加密数据的步骤之后,还包括:
确定所述密钥与加密数据的每个加密字符对应的数据;
根据确定的所述数据生成解密数据序列;
根据所述解密数据序列计算所述加密数据对应的解密数据。
3.如权利要求1所述的加密方法,其特征在于,所述将每次计算获取的余数排列成所述加密数据序列的步骤包括:
将每次计算获取的余数按照各个余数获取顺序的逆序排列生成所述加密数据序列。
4.如权利要求2所述的加密方法,其特征在于,所述根据所述解密数据序列计算所述加密数据对应的解密数据的步骤包括:
步骤D、计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值;其中,所述进制数为所述密钥的字符个数;
步骤E、将计算获得的和值作为当前加密数据,并继续执行所述步骤D,直至所述解密数据序列中所有的数据均计算和值完成;
步骤F、将最终计算获得的和值作为所述加密数据对应的解密数据。
5.一种加密装置,其特征在于,所述加密装置包括:
获取模块,用于获取待加密数据;
计算模块,用于根据所述待加密数据和预设的密钥计算加密数据序列;其中,所述密钥为一串无序不重复字符;
所述计算模块包括:
第一计算单元,用于采用当前待加密数据除以所述密钥的进制数,获得商数以及余数;其中,所述进制数为所述密钥的字符个数;
第一控制单元,用于将计算获得的商数作为当前待加密数据,并控制第一计算单元继续采用当前待加密数据除以所述密钥的进制数,获得商数以及余数,直至计算获取的商数为零;
第一处理单元,用于将第一计算单元每次计算获取的余数排列成所述加密数据序列;
第一确定模块,用于确定所述密钥与所述加密数据序列对应的加密字符;
加密模块,用于基于所述加密字符生成所述待加密数据对应的加密数据。
6.如权利要求5所述的加密装置,其特征在于,所述加密装置还包括:
第二确定模块,用于确定所述密钥与加密数据的每个加密字符对应的数据;
生成模块,用于根据确定的所述数据生成解密数据序列;
解密模块,用于根据所述解密数据序列计算所述加密数据对应的解密数据。
7.如权利要求5所述的加密装置,其特征在于,所述第一处理单元,还用于将每次计算获取的余数按照余数获取顺序的逆序排列生成所述加密数据序列。
8.如权利要求6所述的加密装置,其特征在于,所述解密模块包括:
第二计算单元,用于计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值;其中,所述进制数为所述密钥的字符个数;
第二控制单元,用于将计算获得的和值作为当前加密数据,并控制第二计算单元继续计算当前加密数据与所述密钥的进制数的乘积值,并计算所述乘积值与所述解密数据序列中对应数据的和值,直至所述解密数据序列中所有的数据均计算和值完成;
第二处理单元,用于将第二计算单元最终计算获得的和值作为所述加密数据对应的解密数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510188144.9A CN104767622B (zh) | 2015-04-20 | 2015-04-20 | 加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510188144.9A CN104767622B (zh) | 2015-04-20 | 2015-04-20 | 加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104767622A CN104767622A (zh) | 2015-07-08 |
CN104767622B true CN104767622B (zh) | 2018-08-14 |
Family
ID=53649255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510188144.9A Active CN104767622B (zh) | 2015-04-20 | 2015-04-20 | 加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104767622B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959264A (zh) * | 2016-04-25 | 2016-09-21 | 四川联友电讯技术有限公司 | 改善碎片化异步会议系统信息安全的方法 |
CN106130830B (zh) * | 2016-08-31 | 2019-06-04 | 北京奇虎科技有限公司 | 安全设备稳定性的测试方法和测试装置 |
CN113722724A (zh) * | 2020-05-26 | 2021-11-30 | Tcl新技术(惠州)有限公司 | 一种加密方法、解密方法、终端以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693398A (zh) * | 2012-05-09 | 2012-09-26 | 深圳大学 | 一种数据加密方法及系统 |
CN102857340A (zh) * | 2011-06-27 | 2013-01-02 | 席继红 | 一种对称密码体制的加密方法 |
CN103646264A (zh) * | 2013-11-06 | 2014-03-19 | 杭州电子科技大学 | 一种多重信息加密的二维码防伪方法 |
CN104104504A (zh) * | 2014-07-22 | 2014-10-15 | 大唐微电子技术有限公司 | 一种rsa解密的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5328186B2 (ja) * | 2008-03-21 | 2013-10-30 | ルネサスエレクトロニクス株式会社 | データ処理システム及びデータ処理方法 |
-
2015
- 2015-04-20 CN CN201510188144.9A patent/CN104767622B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857340A (zh) * | 2011-06-27 | 2013-01-02 | 席继红 | 一种对称密码体制的加密方法 |
CN102693398A (zh) * | 2012-05-09 | 2012-09-26 | 深圳大学 | 一种数据加密方法及系统 |
CN103646264A (zh) * | 2013-11-06 | 2014-03-19 | 杭州电子科技大学 | 一种多重信息加密的二维码防伪方法 |
CN104104504A (zh) * | 2014-07-22 | 2014-10-15 | 大唐微电子技术有限公司 | 一种rsa解密的方法及装置 |
Non-Patent Citations (1)
Title |
---|
数据文件加密的一种新方法—循环余数法;李龙景等;《通化师院学报》;20001231;第14-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104767622A (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ye et al. | An efficient symmetric image encryption algorithm based on an intertwining logistic map | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
Xiao et al. | A chaos-based hash function with both modification detection and localization capabilities | |
CN111404943B (zh) | 数据的处理方法、装置、电子设备及计算机可读存储介质 | |
CN107579813A (zh) | 信息加密、解密方法及装置 | |
CN107786331A (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
US8953784B2 (en) | Lightweight stream cipher cryptosystems | |
CN107707347A (zh) | 用户密钥的备份方法及装置、用户密钥的导入方法及装置 | |
CN106209886A (zh) | web接口数据加密加签方法、装置及服务器 | |
CN104767622B (zh) | 加密方法及装置 | |
US10326596B2 (en) | Techniques for secure authentication | |
KR20200115408A (ko) | 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법 | |
CN114448598A (zh) | 密文压缩方法、密文解压缩方法、装置、设备和存储介质 | |
CN111600867B (zh) | 一种数据加密方法和相关设备 | |
US20220255722A1 (en) | Practical sorting on large-scale encrypted data | |
CN110990846B (zh) | 信息存储方法、设备及计算机可读存储介质 | |
CN111260532B (zh) | 隐私图像加密方法、装置、电子设备及计算机可读存储介质 | |
CN105141631A (zh) | 一种终端、服务器及账户安全登录的方法、装置和系统 | |
CN103401681B (zh) | 取模方法、取模装置及芯片 | |
KR102522708B1 (ko) | 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법 | |
CN108021815A (zh) | 图像加密方法、装置及电子设备 | |
KR102160294B1 (ko) | 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법 | |
Kumaresan et al. | An additive cellular automata based random key generation for one-time pad encryption using luhn method | |
CN104717053A (zh) | 数据解密电路与方法 | |
CN115333868B (zh) | 基于奇偶轮循的对称加密方法、解密方法、装置、设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |