数据加密方法、系统、电子装置和存储介质与流程

文档序号:26307913发布日期:2021-08-17 13:48阅读:106来源:国知局
数据加密方法、系统、电子装置和存储介质与流程

本申请涉及数据安全领域,特别是涉及一种数据加密方法、系统、电子装置和存储介质。



背景技术:

随着互联网技术的发展,数据作为一种重要资源显现出越来越重要的价值。但是,信息被盗用、数据被外泄等问题也频繁出现。尤其是近年来随着云计算技术的兴起,用户为了节约自身的软硬件成本,越来越多地将计算和存储需求外包给云服务提供商,利用云服务提供商强大的算力资源实现数据的托管存储和处理。但是,将明文数据直接交给云服务提供商具有一定的安全风险,因此数据加密存储与授权查看成为亟待解决的问题。

目前,加密技术作为一种保护数据的有效技术手段,在信息安全中扮演着重要角色。为保证数据机密性,完整性和可用性,通常需要对数据传输、存储、签名等进行加密。而为了便于密文的传输、存储,通常对密文进行编码,常见的加密算法加密的密文通常无法用可见的ascii码显示,需要将密文进行编码,以一串英文或数字等字符串形式显示,以便于密文的传输与存储。然而在一些特定业务场景下(如未授权用户无权查看明文),需要向用户展示密文时,对于中文加密的密文以一串毫无意义的英文或数字等字符串展示对普通用户来说可读性较差。

针对相关技术中存在的对待加密数据进行加密的密文以一串与待加密数据类型毫无关联的字符串展示,对普通用户来说可读性较差的问题,目前还没有提出有效的解决方案。



技术实现要素:

在本实施例中提供了一种数据加密方法、系统、电子装置和存储介质,以解决相关技术中存在的对待加密数据进行加密的密文以一串与待加密数据类型毫无关联的字符串展示,对普通用户来说可读性较差的问题。

第一个方面,在本实施例中提供了一种数据加密方法,包括:

获取待加密数据,基于预设的分词规则对所述待加密数据进行分词处理,得到分词处理结果,所述分词处理结果包括至少一个特征词;

获取所述特征词,基于预设的第一编码规则对所述特征词进行编码,得到与所述特征词对应的第一数据,并基于预设的第一转化规则将所述第一数据转化为第一明文字符串,其中,所述第一数据的计数系统类型由所述预设的第一编码规则决定;

获取所述第一明文字符串,并对所述第一明文字符串进行格式保留加密,得到与所述第一明文字符串对应的第二密文字符串;

获取所述第二密文字符串,并基于预设的第二转化规则将所述第二密文字符串转化为至少一个第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同;

获取所述第二数据,基于预设的第二编码规则对所述第二数据进行编码,得到与所述特征词对应的已加密数据,所述已加密数据与所述特征词的数据类型一致。

在其中的一些实施例中,所述获取所述第二密文字符串,并基于预设的第二转化规则将所述第二密文字符串转化为至少一个第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同,包括:

获取所述第二密文字符串,将所述第二密文字符串从起始位开始以三个字符为一组依次进行划分,得到第二密文字符串组;其中,如果最后一组所述第二密文字符串组不足三个字符,则用零补齐;

基于预设的第二转化规则将所述第二密文字符串组转化为第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同。

在其中的一些实施例中,在所述基于预设的第二编码规则对所述第二数据进行编码,得到与所述特征词对应的已加密数据之后,还包括:对于用零补齐的所述第二密文字符串组,在所述已加密数据后面填充对应的填充标记。

在其中的一些实施例中,所述预设的第一编码规则为使用utf-8或ascii进行编码,所述预设的第二编码规则为使用unicode进行编码;所述第一数据的计数系统类型为十六进制。

在其中的一些实施例中,所述预设的第一编码规则还包括:对表示地址信息或格式信息的所述特征词不进行编码。

在其中的一些实施例中,所述对所述第一明文字符串进行格式保留加密是通过格式保留加密算法fpe完成的。

在其中的一些实施例中,所述待加密数据包括汉字。

第二个方面,在本实施例中提供了一种数据加密系统,包括:数据分词模块、第一编码模块、格式保留模块、第二转化模块以及第二编码模块;其中,

所述数据分词模块,用于获取待加密数据,基于预设的分词规则对所述待加密数据进行分词处理,得到分词处理结果,所述分词处理结果包括至少一个特征词;

所述第一编码模块,用于获取所述特征词,基于预设的第一编码规则对所述特征词进行编码,得到与所述特征词对应的第一数据,并基于预设的第一转化规则将所述第一数据转化为第一明文字符串,其中,所述第一数据的计数系统类型由所述预设的第一编码规则决定;

所述格式保留模块,用于获取所述第一明文字符串,并对所述第一明文字符串进行格式保留加密,得到与所述第一明文字符串对应的第二密文字符串;

所述第二转化模块,用于获取所述第二密文字符串,并基于预设的第二转化规则将所述第二密文字符串转化为至少一个第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同;

所述第二编码模块,用于获取所述第二数据,基于预设的第二编码规则对所述第二数据进行编码,得到与所述特征词对应的已加密数据,所述已加密数据与所述特征词的数据类型一致。

第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的数据加密方法。

第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的数据加密方法。

与相关技术相比,在本实施例中提供的数据加密方法、系统、电子装置和存储介质,通过对待加密数据进行分词得到至少一个特征词,通过预设的第一编码规则对特征词进行编码,得到第一数据,并基于预设的第一转化规则将第一数据转化为第一明文字符串;对第一明文字符串进行格式保留加密,得到第二密文字符串;基于预设的第二转化规则将第二密文字符串转化为至少一个的第二数据;基于预设的第二编码规则对第二数据进行编码,得到与特征词对应的已加密数据,已加密数据与特征词的数据类型一致。利用本申请得到的加密数据与待加密数据数据类型一致,从而解决了相关技术中存在的对待加密数据进行加密的密文以一串与待加密数据类型毫无关联的字符串展示对普通用户来说可读性较差的问题,用户可以对和原文同样格式的密文进行读取,加密数据的可读性强。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例的数据加密方法的终端的硬件结构框图;

图2是本申请实施例的数据加密方法的流程图;

图3是本申请实施例提供的另一种数据加密方法的流程图;

图4是本申请实施例提供的数据加密系统的结构框图。

具体实施方式

为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。

除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。

在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本申请实施例的数据加密方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的数据加密方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种数据加密方法,图2是本实施例的数据加密方法的流程图,如图2所示,该流程包括如下步骤:

步骤s201,获取待加密数据,基于预设的分词规则对待加密数据进行分词处理,得到分词处理结果,分词处理结果包括至少一个特征词。

待加密数据可以为各种各样的数据,包括中文、英文、数字等。对于不同的数据,可以有各种各样的分词规则。以中文为例,常见的中文分词规则可分为三大类:基于字典、词库匹配的分词方法;基于词频度统计的分词方法;基于知识理解的分词方法。基于预设的分词规则对待加密数据(例如:中文句子)进行分词,分词处理结果可以为若干特征词,这些特征词可以为单个中文汉字,也可以为单个中文词组。

步骤s202,获取特征词,基于预设的第一编码规则对特征词进行编码,得到与特征词对应的第一数据,并基于预设的第一转化规则将第一数据转化为第一明文字符串,其中,第一数据的计数系统类型由预设的第一编码规则决定。

预设的第一编码规则可以为各种编码规则,只要满足将特征词编码成特定的第一数据即可。常见的编码规则可以为使用utf-8、ascii、base64等进行编码,本实施例对此不做限定。此处的第一数据可以为数学数字,该第一数据的计数系统类型可以为二进制、八进制、十进制、十六进制等,上述计数类型由预设的第一编码规则决定,本实施例不做限制。上述预设的第一转化规则将第一数据转化为第一明文字符串,该预设的第一转化规则可以是一种设定的编码规则,例如:某第一数据为十六进制数0xe68891,通过预设的第一转化规则转化为第一明文字符串e68891,本实施例不对第一转化规则进行限定。

步骤s203,获取第一明文字符串,并对第一明文字符串进行格式保留加密,得到与第一明文字符串对应的第二密文字符串。

上述格式保留加密可以通过格式保留加密算法来实现。现有技术中存在各式各样的格式保留加密算法,通过格式保留加密算法得到的加密后的密文和加密前的明文格式一致(长度和字符类型一样)。例如:第一明文字符串为e68891,通过格式保留加密算法得到第二密文字符串87bea9,第一明文字符串与第二密文字符串的长度和字符类型一样。

步骤s204,获取第二密文字符串,并基于预设的第二转化规则将第二密文字符串转化为至少一个第二数据,其中,第二数据的计数系统类型与第一数据的计数系统类型相同。

上述预设的第二转化规则可以任意设置,只要确保通过预设的第二转化规则获取的第二数据的计数系统类型与第一数据的计数系统类型相同即可。例如:某第二密文字符串为87bea9,通过预设的第二转化规则转化为第二数据0x87bea9,本实施例不对第二转化规则进行限定。

步骤s205,获取第二数据,基于预设的第二编码规则对第二数据进行编码,得到与特征词对应的已加密数据,已加密数据与特征词的数据类型一致。

预设的第二编码规则可以为各种编码规则,只要满足将第二数据编码成特定的已加密数据即可,该已加密数据与上述特征词类型完全一致,常见的编码规则可以为使用unicode等进行编码,本实施例对此不做限定。上述已加密数据与特征词的数据类型一致,但是已加密数据与特征词的数据个数并没有限制,可以相同也可以不同。例如,准备一个包含4096个汉字的表(不重复),在unicode编码表0x4e00到0x9520中选取4096个汉字,构成一张汉字表,从0开始标序号;存在某第二数据为0x87b,该第二数据作为上述汉子表的序号查找对应的汉字,该汉字即为第二数据0x87b的已加密数据。

通过上述步骤,对待加密数据进行分词得到至少一个特征词,通过预设的第一编码规则对特征词进行编码,得到第一数据,并基于预设的第一转化规则将第一数据转化为第一明文字符串;对第一明文字符串进行格式保留加密,得到第二密文字符串;基于预设的第二转化规则将第二密文字符串转化为至少一个的第二数据;基于预设的第二编码规则对第二数据进行编码,得到与特征词对应的已加密数据,已加密数据与特征词的数据类型一致,从而使加密数据与待加密数据数据类型一致。利用本申请实施例得到的加密数据与待加密数据数据类型一致,从而解决了相关技术中存在的对待加密数据进行加密的密文以一串与待加密数据类型毫无关联的字符串展示对普通用户来说可读性较差的问题,用户可以对和原文同样格式的密文进行读取,加密数据的可读性强。

在本实施例中还提供了一种数据加密方法。图3是本申请实施例提供的另一种数据加密方法的流程图,如图3所示,除了包括上述步骤s201~s205之外,在其中的一些实施例中,步骤s204中获取第二密文字符串,并基于预设的第二转化规则将第二密文字符串转化为至少一个第二数据,其中,第二数据的计数系统类型与第一数据的计数系统类型相同,包括:

s2041,获取第二密文字符串,将第二密文字符串从起始位开始以三个字符为一组依次进行划分,得到第二密文字符串组;其中,如果最后一组所述第二密文字符串组不足三个字符,则用零补齐。

例如,对于第二密文字符串87bea9a,划分为87b、ea9、a,其中a后面用0补齐,得到第二字符串组87b、ea9、a00。

s2042,基于预设的第二转化规则将第二密文字符串组转化为第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同。

例如,基于预设的第二转化规则将第二字符串组87b、ea9、a00转化为十六进制第二数据0x87b、0xea9、0xa00。

在其中的一些实施例中,在基于预设的第二编码规则对所述第二数据进行编码,得到与所述特征词对应的已加密数据之后,还包括:

s206,对于用零补齐的第二密文字符串组,在已加密数据后面填充对应的填充标记。

例如,上述一个包含4096个汉字的表(不重复),在unicode编码表0x4e00到0x9520中选取4096个汉字,构成一张汉字表,从0开始标序号;对于用零补齐的第二密文字符串组,在已加密数据后面填充对应的填充标记,该填充标记可以为汉字表的最后一个字,假设汉字表最后一个字为“锯”,填充一个0的第二密文字符串组则在已加密数据末位添加一个“锯”,填充两个0的第二密文字符串组则在已加密数据末位添加两个“锯”。

在其中的一些实施例中,上述待加密数据包括汉字,预设的第一编码规则为使用utf-8或ascii进行编码,预设的第二编码规则为使用unicode进行编码;第一数据的计数系统类型为十六进制。

在其中的一些实施例中,预设的第一编码规则还包括:对表示地址信息或格式信息的特征词不进行编码。为了实现已加密数据在加密后仍能够以具有可读性较强的已加密数据展示密文,可以保留待加密数据的属性(如地址信息和格式信息)。如加密“浙江省杭州市滨江区”,加密后可能为“好上省度多市米马区”即按照加密策略可以对“省”、“市”、“区”不进行加密。

在其中的一些实施例中,对第一明文字符串进行格式保留加密是通过格式保留加密算法fpe(format-preservingencryption,简称fpe)完成的。fpe算法的过程中包含了多轮对称加密,可使用aes(advancedencryptionstandard,高级加密标准)或sm4(分组密码标准)。

本申请实施例可以应用在模糊搜索领域,当输入模糊词汇的时候,可以使用本实施例的数据加密方法,将模糊词汇进行加密,这样可以使用加密后的模糊词汇与目标词汇(目标词汇也经过同样的方法数据加密)进行比对从而搜索出目标词汇。例如:目标词汇“浙江”经数据加密显示为“好上”,在检索“浙江”的时候,通过相同的数据加密方法,可以得到检索词“好上”,从而匹配到目标词汇“浙江”经加密后得到的“好上”,在目标词汇加密后仍可以实现模糊搜索。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本实施例中还提供了一种数据加密系统,该系统用于实现上述实施例,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是本申请实施例提供的数据加密系统的结构框图,如图4所示,该系统包括:数据分词模块10、第一编码模块20、格式保留模块30、第二转化模块40以及第二编码模块50;其中,

数据分词模块10,用于获取待加密数据,基于预设的分词规则对待加密数据进行分词处理,得到分词处理结果,分词处理结果包括至少一个特征词;

第一编码模块20,用于获取特征词,基于预设的第一编码规则对特征词进行编码,得到与特征词对应的第一数据,并基于预设的第一转化规则将第一数据转化为第一明文字符串,其中,第一数据的计数系统类型由预设的第一编码规则决定;

格式保留模块30,用于获取第一明文字符串,并对第一明文字符串进行格式保留加密,得到与第一明文字符串对应的第二密文字符串;

第二转化模块40,用于获取第二密文字符串,并基于预设的第二转化规则将第二密文字符串转化为至少一个第二数据,其中,第二数据的计数系统类型与第一数据的计数系统类型相同;

第二编码模块50,用于获取第二数据,基于预设的第二编码规则对第二数据进行编码,得到与特征词对应的已加密数据,已加密数据与特征词的数据类型一致。

在其中的一些实施例中,第二转化模块40还用于:获取第二密文字符串,将第二密文字符串从起始位开始以三个字符为一组依次进行划分,得到第二密文字符串组;其中,如果最后一组第二密文字符串组不足三个字符,则用零补齐;基于预设的第二转化规则将第二密文字符串组转化为第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同。

在其中的一些实施例中,第二编码模块50还用于在基于预设的第二编码规则对第二数据进行编码,得到与特征词对应的已加密数据之后,对于用零补齐的第二密文字符串组,在已加密数据后面填充对应的填充标记。

在其中的一些实施例中,待加密数据包括汉字预设的第一编码规则为使用utf-8或ascii进行编码,预设的第二编码规则为使用unicode进行编码;第一数据的计数系统类型为十六进制。

在其中的一些实施例中,预设的第一编码规则还包括:对表示地址信息或格式信息的特征词不进行编码。

在其中的一些实施例中,对第一明文字符串进行格式保留加密是通过格式保留加密算法fpe完成的。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取待加密数据,基于预设的分词规则对所述待加密数据进行分词处理,得到分词处理结果,所述分词处理结果包括至少一个特征词。

s2,获取所述特征词,基于预设的第一编码规则对所述特征词进行编码,得到与所述特征词对应的第一数据,并基于预设的第一转化规则将所述第一数据转化为第一明文字符串,其中,所述第一数据的计数系统类型由所述预设的第一编码规则决定。

s3,获取所述第一明文字符串,并对所述第一明文字符串进行格式保留加密,得到与所述第一明文字符串对应的第二密文字符串。

s4,获取所述第二密文字符串,并基于预设的第二转化规则将所述第二密文字符串转化为至少一个第二数据,其中,所述第二数据的计数系统类型与所述第一数据的计数系统类型相同。

s5,获取所述第二数据,基于预设的第二编码规则对所述第二数据进行编码,得到与所述特征词对应的已加密数据,所述已加密数据与所述特征词的数据类型一致。

需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。

此外,结合上述实施例中提供的数据加密方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据加密方法。

应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。

显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。

“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

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