具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语的限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一加密算法称为第二加密算法,且类似地,可将第二加密算法称为第一加密算法。第一加密算法和第二加密算法两者都是加密算法,但其不是同一加密算法。
本发明实施例所提供的数据存储方法,可应用于如图1所示的应用环境中。参照图1,该应用环境包括服务器102和多个终端104。其中,终端包括但不限于手机、平板电脑或者个人数字助理或穿戴式设备等,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。服务器102可用于执行本发明各个实施例所提供的数据存储方法和数据查询方法。服务器102与终端104网络连接,服务器102可通过网络连接发送数据至终端104。比如说,服务器102可接收终端104发送的原始数据;服务器102还可将加密后的原始数据及随机密钥发送至终端104,使得终端104可根据随机密钥通过相应的第一解密算法对加密后的原始数据进行解密,其中,网络连接包括但不限于无线网络、有线网络等。
在一个实施例中,如图2所示,提供了一种数据存储方法,该方法可用于如图1所示的应用环境中的服务器102,该方法包括:
步骤S202,接收原始数据。
原始数据是指需要进行存储的数据。原始数据可以是报表形式的数据,比如说,资产负债表、现金流量表、利润表等财务报表及政府报表等。原始数据中包含时间戳。时间戳是指能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,能唯一地标识某一刻的时间。原始数据中包含的时间戳所对应的时间可为接收原始数据的时间,还可为原始数据生成的时间,但不限于此。
在一个实施例中,原始数据可为终端104通过接收用户输入的具体数值而生成的原始数据,终端104可将该原始数据发送至服务器102中进行数据存储,服务器102中包含用于存储原始数据的数据库。
步骤S204,将时间戳作为预设随机算法的随机种子进行迭代计算,生成随机密钥。
随机密钥是通过预设随机算法生成的取值随机的密钥,且是以原始数据包含的时间戳作为随机种子进行迭代运算。其中,随机种子是指作为生成随机数的初始条件所需的真随机数。一般计算机的随机数都是伪随机数,以一个随机种子作为初始条件,然后可用一定的算法不停迭代产生随机数。接收原始数据的时刻会有对应的时间戳,可将该时间戳作为预设随机算法的随机种子,通过预设次数的迭代计算,直接将得到的随机序列作为随机密钥,或者根据得到的随机序列生成随机密钥。密钥是一种参数,是在明文转换为密文或将密文转换为明文的算法中输入的参数,可包含0至9十个数字、26个英文字母及常用标点符号等其中一种或多种的组合。随机密钥可为对称密钥,是指用于对称加密算法中的参数。
步骤S206,根据随机密钥通过预设的第一加密算法加密原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分。
预设的第一加密算法是指用于加密原始数据的加密算法。将生成的随机密钥作为预设的第一加密算法的参数之后,可通过预设的第一加密算法加密原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分,得到加密后的原始数据。每个原始数据可对应一个随机密钥,比如说,当原始数据可为报表时,则每个报表可对应一个随机密钥。预设敏感字段名数据库是指由需要进行加密的敏感字段名所构成的数据库。敏感字段名是指不当使用或未经授权被人接触或修改会不利于用户或企业依法享有的隐私权的信息所对应的字段名,比如,“金额”、“资产”、“身份证号”等。比如说将原始数据中的原始字段名与该敏感字段名数据库中的敏感字段名进行匹配,将匹配的原始字段名所对应的字段通过预设的第一加密算法进行加密。原始字段名之间还具有映射关系,比如,若“身份证号”需要进行加密,而由“地址”“出生年月日”等可推断出身份证号,则需要将“地址”“出生年月日”等原始字段名所对应的字段一并进行加密。还可以构建替换字段名之间的映射关系,比如说,P1与P2、P3及P4有映射关系,当检测到P1对应的字段需要进行加密时,同时可将P2、P3及P4对应的字段进行加密。通过预设敏感字段名数据库,使得能够更有针对性地对原始数据中的敏感部分内容进行加密。
在一个实施例中,第一加密算法可以是对称加密算法,比如说,DES(DataEncryption Standard,数据加密标准)算法、3DES(Triple DES,三重数据加密)算法、Blowfish(BlowFish是一个容易使用的文件和文件夹加密软件,只要用鼠标把文件或文件夹拖到加密的文档地方)算法、RC5算法(RC5是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥大小和加密轮数,在此算法中使用了三种运算:异或、加和循环)及IDEA(International Data Encryption Algorithm,国际数据加密算法)算法等对称加密算法。还可以为多种对称加密算法的组合加密算法。
步骤S208,对加密后的原始数据进行转换处理生成替换数据。
替换数据是指对加密后的原始数据进行转换处理后生成的数据。其中,转换处理是指将加密后的原始数据中包含的部分或全部信息转换成其他预设的信息,比如说转换成不具实际含义的字段,并将转换后的数据作为替换数据。
步骤S210,将随机密钥与替换数据存储至数据库表。
数据库表是一系列二维数组的集合,由纵向的列和横向的行组成。列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名;行包括了若干列信息项,一行数据称为一个或一条记录。
在一个实施例中,若接收多个原始数据,比如说从多个终端104分别接收原始数据之后,可将多个原始数据按照接收时间顺序置于任务队列,依次将多个原始数据处理之后存储至预设的数据库表,实现本发明实施例所提供的数据存储方法;或者还可以将多个原始数据整合之后进行处理。
上述实施例中,根据原始数据中包含的时间戳作为随机种子通过预设随机算法生成的随机密钥之后,根据该随机密钥通过预设的第一加密算法加密原始数据对需要进行存储的原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分进行加密之后,对加密后的原始数据进行转换处理生成替换数据,将随机密钥和替换数据存储至数据库表。由于加密原始数据的密钥为随机算法生成的随机密钥,所以相同的数据通过相同的加密算法每次加密后得到的内容为不一致的,提高了破解者解密原始数据的难度,通过对加密后的原始数据进行转换处理,降低了他人获取原始数据实际含义的风险,从而提高了数据存储的安全性。
在一个实施例中,如图3所示,步骤S208包括:
步骤S302,提取加密后的原始数据中的原始字段名,生成原始字段名表。
数据库表的列由同类的信息组成,每列的标题称为字段名,每列又称为一个字段,包含了该字段名对应的全部信息;行包括了若干列信息项,一行数据称为一个或一条记录。原始字段名是指加密后的原始数据中包含的字段名。比如说,原始数据可为客户订单表,可包括“订单ID”、“姓名”、“客户ID”、“职务”、“上级”、“地区”、“运货商”、“国家”等字段名,原始字段名可为“订单ID”、“姓名”、“客户ID”等字段名加密后的数据,每个原始字段名下可包含不同客户的相应信息。原始字段名表是根据提取出的原始字段名所整合生成的数据,同样的,可以表格的形式进行存储。
在一个实施例中,提取出原始数据中的原始字段名生成原始字段名表之后,还可提取原始数据的相关信息存储至原始字段名表中,比如,若原始数据为报表,则相关信息可为报表序号、报表期数、编制单位及编制日期等。还可以以相关信息作为原始字段名表的标识,用于区分该原始字段名表与其他字段名表,以及提高查询原始数据的效率。
步骤S304,将加密后的原始数据中的原始字段名替换为相应的替换字段名,生成替换数据。
替换字段名是指用于替换原始字段名的无意义字段名。比如说,可预设n个替换字段名,P1、P2、P3、……、Pn,作为替换字段名。其中,n可为任意正整数,比如200或300等。原始字段名与替换字段名为一一映射关系,比如说,若原始字段名“姓名”被替换成“P1”之后,其他原始字段名便不可以取“P1”作为替换字段名。
在一个实施例中,若接收多个原始数据,不同加密后的原始数据中相同的原始字段名对应的替换字段名可为一致。比如说若接收了多个期数的客户订单表,每个客户订单表中的原始字段名可能为一致的,相同的原始字段名仍可替换成相应的替换字段名。
步骤S306,根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成字段配置文件。
字段配置文件是指用于维护替换数据中的替换字段名与原始字段名表中的原始字段名,两者之间映射关系的配置文件。原始数据可为多个报表,字段配置文件可通过表号、表名、表页、表单、行号、列号等信息描述替换数据将处于数据库表中的存储地址。可通过xml、Json、ini等数据格式进行配置,解析时也需要用相应的格式解析器进行解析。还可针对不同的系统需求,转换配置文件的格式完成接口对接。比如说,在安装有Json格式解析器的计算机设备上,可将通过xml生成的配置文件转换为Json格式之后再进行解析。
上述实施例中,通过将加密后的原始数据中的原始字段名替换为替换字段名之后进行存储,并通过字段配置文件来维护替换数据中的替换字段名与原始字段名表中的原始字段名之间的映射关系。即使破解者解密了数据库表中存储的数据,破解者获得的也只是包含无意义的替换字段名的替换数据,仍然无法破解得到原始数据的真实信息,进一步地提高了解密得到原始数据的难度,从而提高了数据存储的安全性。
在一个实施例中,在根据随机密钥通过预设的第一加密算法加密原始数据之后,还包括:通过预设的第二加密算法加密随机密钥,生成加密后的随机密钥;将加密后的随机密钥标记上与加密后的原始数据对应的数据标识;将随机密钥与替换数据存储至数据库表,包括:将加密后的随机密钥与替换数据存储至数据库表。
第二加密算法是指用于加密随机密钥的加密算法,加密随机密钥是指通过第二加密算法加密随机密钥得到的加密后的随机密钥。其中,第二加密算法可为非对称加密算法,比如说,RSA(公钥加密算法)、Elgamal、背包算法、Rabin算法及ECC(Error CorrectingCode,椭圆曲线加密算法)等非对称加密算法。还可以为多种非对称加密算法的组合加密算法。通过预设的第二加密算法加密随机密钥生成加密后的随机密钥之后,需要将加密后的随机密钥标记上与加密后的原始数据对应的数据标识,使得能够在数据查询时更加准确地获取到对应的加密后的随机密钥。加密后的随机密钥也可存储于与加密后的原始数据对应的存储地址。
在一个实施例中,如图4所示,提供了又一种数据存储方法,该方法可用于图1应用环境中服务器102举例说明,该方法包括以下步骤:
步骤S402,接收原始数据。
原始数据可为多个报表数据。该原始数据可为通过图1应用环境中的终端104通过网络连接发送的数据。原始数据包含时间戳。时间戳所对应的时间可为接收报表数据的时间。
步骤S404,将时间戳作为预设随机算法的随机种子进行迭代计算,生成随机密钥。
举例来说,预设随机算法包括但不限于斐波那契算法、梅森旋转算法及异或漂移算法等其中一种或多种的组合。斐波那契算法是采用模数产生随机序列的随机算法,斐波那契数列从第二项开始,每一项都等于前两项之和的数列;梅森旋转算法是基于一个有限二进制字段上的矩阵线性递归关系生成伪随机数的随机算法;异或漂移算法是在2128-1周期内,先按比特位进行异或运算,然后进行向左向右移位运算产生随机序列的随机算法。可将时间戳作为随机种子通过预设随机算法进行预设次数的迭代计算,将计算得到的结果作为随机密钥。
步骤S406,根据随机密钥通过预设的第一加密算法加密原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分。
举例来说,预设的第一加密算法可为Base64算法。Base64是一种基于64个可打印字符来表示二进制数据的算法,可通过一个预设的转码表实现对数据的加密。通过该随机密钥可实现对Base64算法所需用到的转码表进行乱序,生成随机转码表。Base64算法可通过随机转码表对原始数据进行加密。
步骤S408,通过预设的第二加密算法加密随机密钥,生成加密后的随机密钥。
举例来说,第二加密算法可为非对称加密算法。通过公钥对该随机密钥进行加密之后,可生成加密后的随机密钥。
步骤S410,提取加密后的原始数据中的原始字段名,生成原始字段名表。
原始字段名可为报表数据中每列的标题。举例来说,可将多个加密后的报表中每列的字段名提取出来,生成原始字段名表。
步骤S412,将加密后的原始数据中的原始字段名替换为相应的替换字段名,生成替换数据。
举例来说,原始数据可为客户订单表,则原始字段名可包括加密后的“订单ID”、“姓名”、“客户ID”、“职务”、“上级”、“地区”、“运货商”、“国家”等字段名,可预设n个替换字段名,P1、P2、P3、……、Pn,作为替换字段名。可将客户订单表中的原始字段名一一替换为预设的替换字段名。比如说“订单ID”替换为“P1”、“职务”替换为“P2”等。进一步地,可根据数据库表中的替换字段名与原始字段名表中的原始字段名的映射关系生成字段配置文件。举例来说,通过字段配置文件维护客户订单表中“订单ID”、“姓名”、“客户ID”、“职务”、“上级”、“地区”、“运货商”、“国家”等原始字段名与替换字段名,P1、P2、P3、……、Pn,之间的映射关系。
步骤S414,将加密后的随机密钥与替换数据存储至数据库表。
可以将加密后的随机密钥标记上与原始数据对应的数据标识之后,将加密后的随机密钥与替换数据存储在数据库表中的相应存储地址。
上述实施例中,通过第一加密算法根据随机密钥对原始数据进行加密,再通过第二加密算法对随机密钥进行加密得到加密后的随机密钥之后,将加密后的原始数据中的原始字段名替换为无意义的替换字段名生成替换数据,然后将加密后的随机密钥与替换数据存储至数据库表。提高了窃取数据库表中存储的替换数据的难度,以及提高了破解数据库表中数据真实内容的难度,从而提高了数据存储的安全性。
在一个实施例中,如图5所示,提供了一种数据查询方法,该方法可用于如图1应用环境中服务器102举例说明,该方法包括以下步骤:
步骤S502,接收用户终端发送的数据查询指令。
数据查询指令是指用于查询数据的指令,且数据查询指令包含查询条件信息。其中,数据查询指令为用户终端发送的指令,比如说由图1应用环境中终端104所发送的指令,该数据查询指令可为用户终端根据检测到的数据查询操作所生成的指令。
在一个实施例中,针对数据查询,用户终端可提供一个数据查询界面,该界面上可包括查询条件配置控件及数据查询控件。用户可通过查询条件配置控件输入需要查询的数据条件,比如说确定报表序号、编制单位及编制日期等查询条件。当用户终端检测到作用于该数据查询控件的点击操作之后,可触发生成相应的数据查询指令并将该数据查询指令发送至服务器102。
步骤S504,根据数据查询指令查询数据库表,得到对应的替换数据。
数据库表是指预存于服务器102中存储的表。该数据库表中存储了根据原始数据中包含的时间戳作为预设随机算法的随机种子进行迭代运算生成的随机密钥以及替换数据。其中,替换数据是根据随机密钥通过预设的第一加密算法对原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分加密后进行转换处理生成的。原始数据是指用户终端需要获取的数据。数据查询指令中可包含查询条件信息,可根据查询条件信息确定需要查询的原始数据,从而可以确定对应的替换数据。
步骤S506,对替换数据进行转换处理生成加密后的原始数据。
加密后的原始数据是指通过预设的第一加密算法对原始数据加密后生成的数据。在数据存储时,服务器对加密后的原始数据进行转换处理生成替换数据,并将该替换数据存储至数据库表中。因此在数据查询时,获取到替换数据之后,需要对该替换数据进行相应的转换处理,从而得到加密后的原始数据。
步骤S508,获取与加密后的原始数据对应的随机密钥。
随机密钥是指根据预设随机算法生成的密钥,与加密后的原始数据对应的随机密钥是指通过预设的第一加密算法加密该原始数据时所用到的随机密钥。
在一个实施例中,随机密钥标记有与加密后的原始数据对应的数据标识。当获取到根据数据查询指令对应的加密后的原始数据之后,可获取包含与该原始数据对应数据标识的随机密钥。
步骤S510,将加密后的原始数据及相应的随机密钥发送至用户终端,使得用户终端根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
第一解密算法是与第一加密算法相对应的解密算法,第一解密算法可通过第一加密算法在加密时用到的随机密钥对加密后的原始数据进行解密,从而得到原始数据。
上述实施例中,根据接收数据查询指令查询数据库表,可查询到替换数据,可将替换数据进行转换处理生成加密后的原始数据,并获取对应的随机密钥,将获取到随机密钥及加密后的原始数据发送至用户终端之后,用户终端可根据与第一加密算法相应的第一解密算法通过该随机密钥解密得到原始数据。提高了原始数据被窃取及破解的难度,从而提高了数据的安全性。
在一个实施例中,替换数据是在提取加密后的原始数据中的原始字段名生成原始字段名表之后,将加密后的原始数据中的原始字段名替换为相应的替换字段名生成的;在步骤504之后,还包括:获取与数据库表对应的字段配置文件,字段配置文件是根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成的;步骤506包括通过解析该字段配置文件,将替换数据进行转换处理生成加密后的原始数据。
字段配置文件是指用于维护替换数据中的替换字段名与原始字段名表中的原始字段名之间映射关系的配置文件。字段配置文件可通过xml、Json、ini等数据格式进行配置,用户终端可通过相应的格式解析器对字段配置文件进行解析。
在一个实施例中,数据库表中存储了加密后的随机密钥,加密后的随机密钥是通过预设的第二加密算法加密随机密钥后生成的,加密后的随机密钥标记有与加密后的原始数据对应的数据标识;步骤S508包括:根据数据标识获取与加密后的原始数据对应的加密后的随机密钥;步骤S510包括:将加密后的原始数据及加密后的随机密钥发送至用户终端,使得用户终端通过预设的第二解密算法将加密后的随机密钥解密得到随机密钥,并根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
数据标识是指在数据存储时用于标记加密后的随机密钥的标识,且该标识与加密后的原始数据存在对应关系。在获取到加密后的原始数据之后,可根据该数据标识获取相应的加密后的随机密钥。其中,在数据存储时,通过预设随机算法生成随机密钥之后,可通过预设的第二加密算法加密该随机密钥生成加密后的随机密钥。相应的,在数据查询时,当用户终端接收到加密后的随机密钥之后,可根据与第二加密算法对应的第二解密算法将加密后的随机密钥解密得到随机密钥,用户终端可根据该随机密钥对加密后的原始数据进行解密,得到原始数据。
在一个实施例中,如图6所示,提供了一种数据存储装置600,该装置包括:原始数据接收模块602,用于接收原始数据,原始数据包含时间戳;随机密钥获取模块604,用于将时间戳作为预设随机算法的随机种子进行迭代计算,生成随机密钥;原始数据加密模块606,用于根据随机密钥通过预设的第一加密算法加密原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分;原始数据转换模块608,用于对加密后的原始数据进行转换处理生成替换数据;替换数据存储模块610,用于将随机密钥与替换数据存储至数据库表。
在一个实施例中,原始数据接收模块602还用于提取加密后的原始数据中的原始字段名,生成原始字段名表;将加密后的原始数据中的原始字段名替换为相应的替换字段名,生成替换数据;根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成字段配置文件。
在一个实施例中,随机密钥获取模块604还用于通过预设的第二加密算法加密随机密钥,生成加密后的随机密钥;将加密后的随机密钥标记上与加密后的原始数据对应的数据标识;替换数据存储模块610还用于将加密后的随机密钥与替换数据存储至数据库表。
在一个实施例中,如图7所示,提供了一种数据查询装置700,该装置包括:数据查询指令接收模块702,用于接收用户终端发送的数据查询指令;数据库表查询模块704,用于根据数据查询指令查询数据库表,得到对应的替换数据,数据库表中存储了根据原始数据中包含的时间戳作为预设随机算法的随机种子进行迭代运算生成的随机密钥以及替换数据,替换数据是根据随机密钥通过预设的第一加密算法对原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分加密后进行转换处理生成的;替换数据转换模块706,用于对替换数据进行转换处理生成加密后的原始数据;随机密钥获取模块708,用于获取与加密后的原始数据对应的随机密钥;原始数据发送模块710,用于将加密后的原始数据及相应的随机密钥发送至用户终端,使得用户终端根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
在一个实施例中,替换数据是在提取加密后的原始数据中的原始字段名生成原始字段名表之后,将加密后的原始数据中的原始字段名替换为相应的替换字段名生成的;替换数据转换模块706还用于获取与数据库表对应的字段配置文件,字段配置文件是根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成的;通过解析字段配置文件,将替换数据进行转换处理生成加密后的原始数据。
在一个实施例中,数据库表中存储了加密后的随机密钥,加密后的随机密钥是通过预设的第二加密算法加密随机密钥后生成的,加密后的随机密钥标记有与加密后的原始数据对应的数据标识;随机密钥获取模块708还用于根据数据标识获取与加密后的原始数据对应的加密后的随机密钥;原始数据发送模块710还用于将加密后的原始数据及加密后的随机密钥发送至用户终端,使得用户终端通过预设的第二解密算法将加密后的随机密钥解密得到随机密钥,并根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
上述的数据存储装置和数据查询装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。
上述数据存储装置和数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备的存储器中,也可以以软件形式存储于计算机设备的存储器中,以便于处理器调用执行以上各个模块对应的操作。该处理器可以为中央处理单元(CPU)、微处理器、单片机等。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收原始数据,原始数据包含时间戳;将时间戳作为预设随机算法的随机种子进行迭代计算,生成随机密钥;根据随机密钥通过预设的第一加密算法加密原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分;对加密后的原始数据进行转换处理生成替换数据;将随机密钥与替换数据存储至数据库表。
在一个实施例中,该程序被处理器执行时,所实现的对加密后的原始数据进行转换处理生成替换数据的步骤,包括:提取加密后的原始数据中的原始字段名,生成原始字段名表;将加密后的原始数据中的原始字段名替换为相应的替换字段名,生成替换数据;根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成字段配置文件。
在一个实施例中,该程序被处理器执行时,在所实现的根据随机密钥通过预设的第一加密算法加密原始数据的步骤之后,还包括:通过预设的第二加密算法加密随机密钥,生成加密后的随机密钥;将加密后的随机密钥标记上与加密后的原始数据对应的数据标识;将随机密钥与替换数据存储至数据库表,包括:将加密后的随机密钥与替换数据存储至数据库表。
在一个实施例中,提供了另一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收用户终端发送的数据查询指令;根据数据查询指令查询数据库表,得到对应的替换数据,数据库表中存储了根据原始数据中包含的时间戳作为预设随机算法的随机种子进行迭代运算生成的随机密钥以及替换数据,替换数据是根据随机密钥通过预设的第一加密算法对原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分加密后进行转换处理生成的;对替换数据进行转换处理生成加密后的原始数据;获取与加密后的原始数据对应的随机密钥;将加密后的原始数据及相应的随机密钥发送至用户终端,使得用户终端根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
在一个实施例中,替换数据是在提取加密后的原始数据中的原始字段名生成原始字段名表之后,将加密后的原始数据中的原始字段名替换为相应的替换字段名生成的,该程序被处理器执行时,在所实现的根据数据查询指令查询数据库表的步骤之后,还包括:获取与数据库表对应的字段配置文件,字段配置文件是根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成的;所实现的对替换数据进行转换处理生成加密后的原始数据的步骤,包括:通过解析字段配置文件将替换数据进行转换处理生成加密后的原始数据。
在一个实施例中,数据库表中存储了加密后的随机密钥,加密后的随机密钥是通过预设的第二加密算法加密随机密钥后生成的,加密后的随机密钥标记有与加密后的原始数据对应的数据标识,该程序被处理器执行时,所实现的获取与加密后的原始数据对应的随机密钥的步骤,包括:根据数据标识获取与加密后的原始数据对应的加密后的随机密钥;所实现的将加密后的原始数据及相应的随机密钥发送至用户终端的步骤,包括:将加密后的原始数据及加密后的随机密钥发送至用户终端,使得用户终端通过预设的第二解密算法将加密后的随机密钥解密得到随机密钥,并根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器在执行程序时实现以下步骤:接收原始数据,原始数据包含时间戳;将时间戳作为预设随机算法的随机种子进行迭代计算,生成随机密钥;根据随机密钥通过预设的第一加密算法加密原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分;对加密后的原始数据进行转换处理生成替换数据;将随机密钥与替换数据存储至数据库表。
在一个实施例中,上述处理器执行程序时,所实现的对加密后的原始数据进行转换处理生成替换数据的步骤,包括:提取加密后的原始数据中的原始字段名,生成原始字段名表;将加密后的原始数据中的原始字段名替换为相应的替换字段名,生成替换数据;根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成字段配置文件。
在一个实施例中,上述处理器执行程序时,在所实现的根据随机密钥通过预设的第一加密算法加密原始数据的步骤之后,还包括:通过预设的第二加密算法加密随机密钥,生成加密后的随机密钥;将加密后的随机密钥标记上与加密后的原始数据对应的数据标识;将随机密钥与替换数据存储至数据库表,包括:将加密后的随机密钥与替换数据存储至数据库表。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器在执行程序时实现以下步骤:接收用户终端发送的数据查询指令;根据数据查询指令查询数据库表,得到对应的替换数据,数据库表中存储了根据预设随机算法生成的随机密钥以及替换数据,替换数据是根据原始数据中包含的时间戳作为随机密钥的随机种子进行迭代运算通过预设的第一加密算法对原始数据中,与预设敏感字段名数据库中的敏感字段名所对应的部分加密后进行转换处理生成的;对替换数据进行转换处理生成加密后的原始数据;获取与加密后的原始数据对应的随机密钥;将加密后的原始数据及相应的随机密钥发送至用户终端,使得用户终端根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
在一个实施例中,替换数据是在提取加密后的原始数据中的原始字段名生成原始字段名表之后,将加密后的原始数据中的原始字段名替换为相应的替换字段名生成的,上述处理器执行程序时,在所实现的根据数据查询指令查询数据库表的步骤之后,还包括:获取与数据库表对应的字段配置文件,字段配置文件是根据替换数据中的替换字段名与原始字段名表中的原始字段名的映射关系生成的;所实现的对替换数据进行转换处理生成加密后的原始数据的步骤,包括:通过解析字段配置文件将替换数据进行转换处理生成加密后的原始数据。
在一个实施例中,数据库表中存储了加密后的随机密钥,加密后的随机密钥是通过预设的第二加密算法加密随机密钥后生成的,加密后的随机密钥标记有与加密后的原始数据对应的数据标识,上述处理器执行程序时,所实现的获取与加密后的原始数据对应的随机密钥的步骤,包括:根据数据标识获取与加密后的原始数据对应的加密后的随机密钥;所实现的将加密后的原始数据及相应的随机密钥发送至用户终端的步骤,包括:将加密后的原始数据及加密后的随机密钥发送至用户终端,使得用户终端通过预设的第二解密算法将加密后的随机密钥解密得到随机密钥,并根据随机密钥通过预设的第一解密算法将加密后的原始数据解密得到原始数据。
图8为一个实施例中计算机设备的内部结构示意图。该计算机设备可应用于图1的应用环境中的服务器102。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。计算机设备的非易失性存储介质存储有操作系统、数据库和计算机程序。该数据库中存储有用于实现以上各个实施例所提供的一种数据存储方法和数据查询方法相关的数据,比如可存储有数据库表。该计算机程序可被处理器所执行,以用于实现以上各个实施例所提供的一种数据存储方法和数据查询方法。计算机设备中的内存储器为非易失性存储介质中的操作系统、数据库和计算机程序提供高速缓存的运行环境。网络接口可以是以太网卡或无线网卡等,用于与外部的终端或服务器进行通信,比如与图1的应用环境中的终端104进行通信,接收终端104发送的原始数据。
本领域技术人员可以理解,图8中示出的计算机设备的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。比如,该图中的服务器还可包括显示屏等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。