本发明涉及数据处理领域,特别涉及一种数据加密方法及装置。
背景技术:
随着信息技术的发展,数据的传输和存储的安全要求也越来越高。例如在通信过程中,如果传输链路中的数据是以明文的形式出现的,那么任何截取到数据的人都可以直接对数据进行解读;相反如果数据以密文的形式出现,那么哪怕数据被截取,对方也无法解读数据所代表的含义。
现有的数据加密方法,在得到明文时,在相应的加密数据库查询对应的加密字符,然后输出加密字符即完成对明文的加密得到密文,再发送出去,该方式能避免任何截取到数据的人都可以直接对数据进行解读。
但是,现有的数据加密方法过于简单,较为容易破解,相关技术人员可以很快的发现其中规律并破解密文,不能安全的保护数据传输。
技术实现要素:
本发明的目的是提供一种用于提高数据安全性的数据加密方法及装置。
基于此,本发明提供了一种数据加密方法,包括:
获取待加密字符串的第i位字符,在预设的约定字库中查询与所述第i位字符对应的序号,所述约定字库中包含第一内环和外环,所述内环为所述多个字符按特定位置组成,所述外环为所述多个字符的序号;在加密字库中查询与所述序号对应的字符,形成第i位加密字符,所述加密字库包含第二内环和外环,所述加密字库的外环与所述约定字库的外环相同,所述第一内环和所述第二内环内字符的内容相同但排序相反;将所述加密字库的内环中的第i位加密字符逆时针位移旋转至预设的目标位置;获取待加密字符串的第i+1位字符,遍历上述步骤,直至加密完所述待加密字符串。
上述数据加密方法,通过不断改变所述加密字库内字符的排列方式,使每个所述待加密字符对应的所述加密字库内字符的排序都不一样,数据的破译难度增大,达到提高数据安全性。
本发明还提供了一种数据加密装置,包括:约定字库模块,所述约定字库模块还包括第一内环模块和外环模块,所述第一内环模块用于存储约定字符,所述外环模块用于给所述第一内环模块存储的字符排序。
加密字库模块,所述加密字库模块还包括第二内环模块和外环模块,所述第二内环模块用于存储加密字符,所述外环模块用于给所述第二内环模块存储的字符排序。
数据获取模块,用于获取待加密字符串的第i位字符;
数据查询模块,用于在预设的约定字库中查询与所述第i位字符对应的序号,并在加密字库中查询与所述序号对应的字符;
调整模块,用于将所述加密字库的内环中的第i位加密字符逆时针位移旋转至预设的目标位置。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为本发明第一实施例的数据加密方法的流程图;
图2为本发明第二实施例的数据加密方法的流程图;
图3为图1中约定字库的结构图;
图4为图1中加密字库的结构图。
图5为本发明第三实施例的数据加密装置的模块图;
图6为本发明第四实施例的数据加密装置的模块图;
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干个实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,为本发明第一实施例提供的数据加密方法,包括步骤S01至S04:
步骤S01
获取待加密字符串的第i位字符,在预设的约定字库中查询与所述第i位字符对应的序号,所述约定字库中包含第一内环和外环,如图3所示,所述内环为所述多个字符按特定位置组成,所述外环为所述多个字符的序号。
具体的,在本实施例中,所述约定字库的内容为0-9,A-Z,a-z,“,”,“.”,以及空格,共按六十五个字符,组成所述第一内环,所述六十五个字符按特定位置排序,所述排序的序列号为1-65,组成所述外环,则所述加密字库为0-9,A-Z,a-z,“,”,“.”,以及空格按与所述约定字库相反的顺序1-65排列。
可以理解的,所述特定位置为用户自行定义或随机排位,在本实施例中,所述第一内环的第一为字符为a,最后一位字符为Z。
可以理解的,所述约定字库和所述加密字库为用户自行选取,增加的数据加密的可靠性。
步骤S02
在加密字库中查询与所述序号对应的字符,形成第i位加密字符,所述加密字库包含第二内环和外环,如图4所示,所述加密字库的外环与所述约定字库的外环相同,所述第一内环和所述第二内环内字符的内容相同但排序相反。
具体的,在本实施例中,所述第i位字符从第一位开始。
步骤S03
将所述加密字库的内环中的第i位加密字符逆时针位移旋转至预设的目标位置。
具体的,所述预设的目标位置为用户自行设定,可以理解的,所述目标位置可以是整个外环排序中任意一个位置,且选中所述目标位置后,在整个数据加密过程中,所述目标位置都不会改变。
步骤S04
获取待加密字符串的第i+1位字符,遍历上述步骤,直至加密完所述待加密字符串。
可以理解的,将所述待加密字符串排序,依次加密所述待加密字符串,直到加密完所述待加密字符串上所有字符。
上述数据加密方法,通过不断改变所述加密字库内字符的排列方式,使每个所述待加密字符对应的所述加密字库内字符的排序都不一样,数据的破译难度增大,达到提高数据安全性。
请参阅图2,为本发明第二实施例的数据加密方法,包括步骤S001至S007:
步骤S001
约定所述约定字库和所述加密字库的字符内容。
可以理解的,所述约定字库和所述加密字库的字符内容由用户约定,且可以每次约定的内容都不一样,增加了数据加密的安全性。
步骤S002
获取待加密字符串的第i位字符,在预设的约定字库中查询与所述第i位字符对应的序号,所述约定字库中包含第一内环和外环,所述内环为所述多个字符按特定位置组成,所述外环为所述多个字符的序号。
可以理解的,所述约定字库也可以为数据链与序号链组成,并不局限于,所述第一内环和所述外环的结构。
步骤S003
在加密字库中查询与所述序号对应的字符,形成第i位加密字符,所述加密字库包含第二内环和外环,所述加密字库的外环与所述约定字库的外环相同,所述第一内环和所述第二内环内字符的内容相同但排序相反。
步骤S004
设定所述目标位置,所述目标位置为所述加密字库外环中任意一个位置。
具体的,如所述加密字库包含六十五个字符,则对应的所述加密字库也包括六十五个序号,所述目标位置可以为所述六十五个序号当中的任意一个序号对应的位置。
步骤S005
将所述加密字库的内环中的第i位加密字符逆时针位移旋转至预设的目标位置。
具体的,在其他实施例中,旋转方式也可以为顺时针。
步骤S006
获取待加密字符串的第i+1位字符,遍历上述步骤,直至加密完所述待加密字符串。
步骤S007
使所述加密字库的内环与所述约定字库的内环对应字符的排序相反;获取加密后的所述待加密字符串当中的r位字符,在所述加密字库查询与所述第r位字符对应的序号;在所述约定字库中查询与所述第r位字符对应的序号对应的字符;将所述加密字库的内环中的第r位加密字符逆时针位移旋转至预设的目标位置;获取待加密字符串的第r+1位字符,遍历上述步骤,直至处理完加密后的所述待加密字符串。
可以理解的,上述步骤为解密过程,所述解密过程与所述加密过程镜像相反。
请参阅图5,为本发明第三实施例提供的数据加密装置的模块图,包括:
约定字库模块30,所述约定字库模块还包括第一内环模块和外环模块,所述第一内环模块用于存储约定字符,所述外环模块用于给所述第一内环模块存储的字符排序。
加密字库模块40,所述加密字库模块还包括第二内环模块和外环模块,所述第二内环模块用于存储加密字符,所述外环模块用于给所述第二内环模块存储的字符排序。
数据获取模块10,用于获取待加密字符串的第i位字符;数据查询模块20,用于在预设的约定字库中查询与所述第i位字符对应的序号,并在加密字库中查询与所述序号对应的字符;调整模块50,用于将所述加密字库的内环中的第i位加密字符逆时针位移旋转至预设的目标位置。
请参阅图6,为本发明第四实施例提供的数据加密装置,所述第四实施例与所述第三实施例大抵相同,其区别在于,所述第四实施例中,所述数据加密装置还包括字库模块70,所述约定字库模块30和所述加密字库模块40的字符可在所述字库模块70中任意选取,所述字库模块70包括所有字符。
所述数据加密装置还包括数据选取模块60,用于选取所述约定字库模块30和所述加密字库模块40的字符内容,所述约定字库模块30和所述加密字库模块40的字符内容由用户自行在所述字库模块70中选取。
所述调整模块50还包括设定模块51,用于设定所述目标位置,所述目标位置为所述加密字库外环中任意一个位置。
所述数据加密装置还包括反序模块80,用于使所述加密字库的内环与所述约定字库的内环对应字符的排序相反。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。