本发明涉及数据加密,尤其涉及一种数据库批量加密方法及验证方法。
背景技术:
1、随着互联网和大数据的发展,对相应的数据库的安全性要求也越来越高,对于数据库的数据加密愈发重要,数据加密指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
2、现有技术中公开了一种数据库数据加密、解密方法及装置,其中,加密方法包括:将数据以数据块进行缓存;将数据块进行压缩;对压缩后的数据块进行加密。由于加密是在数据库内核实现的,无需显示调用加密函数,也可使用数据库提供的加载工具进行批量加载,提高了数据库的性能。
3、但上述技术方案中,对于数据库的加密均针对数据个体,缺乏整体性且可验证程度较低。
技术实现思路
1、本发明的目的在于:提供一种数据库批量加密方法及验证方法,以解决现有技术中对于数据库的加密均针对于数据个体,缺乏整体性且可验证程度较低的问题,能够在保证数据库安全性的同时支持数据库被盗用时的发现和取证。
2、为此,一方面,本发明提供了一种数据库批量加密方法,所述数据库批量加密方法包括:
3、将加密数据库随机分为若干子数据库;
4、对各所述子数据库进行排序并生成序号,将各所述子数据库的序号填充于预设阵列;
5、在预设阵列内设置若干特征坐标,对序号处于特征坐标的子数据库内的数据加入第一加密算法的标识符,对序号未处于特征坐标的子数据库内的数据加入第二加密算法对应的标识符;
6、记录子数据库的序号以及序号在预设阵列内的坐标;
7、对序号处于特征坐标的子数据库通过所述第一加密算法加密,对于序号未处于特征坐标的子数据库通过所述第二加密算法加密。
8、作为数据库批量加密方法的优选技术方案,在所述对各所述子数据库进行排序并生成序号时,排序遵循字段值、时间戳或字符串长度的升序顺序或降序顺序。
9、作为数据库批量加密方法的优选技术方案,在所述将数据库内的数据随机分为若干子数据库时,各子数据库存储的数据量相同或处于预设数据量区间内。
10、作为数据库批量加密方法的优选技术方案,所述第一加密算法为salsa20加密算法,所述第二加密算法为aes加密算法。
11、作为数据库批量加密方法的优选技术方案,在将各所述子数据库的序号填充于所述预设阵列时,预设阵列的坐标数量大于或等于子数据库的数量。
12、作为数据库批量加密方法的优选技术方案,序号在所述预设阵列内的填充方式为随机填充、蛇形填充、逐行填充或逐列填充。
13、作为数据库批量加密方法的优选技术方案,在所述将数据库内的数据随机分为若干子数据库时,采用随机数生成法,包括为每条数据生成一个随机数以及根据随机数的值将数据分配到不同的子数据库。
14、另一方面,本发明提供了一种数据库批量加密的验证方法,用于应用上述方案进行加密的加密数据库的验证,包括:
15、获取验证数据库与加密数据库的若干相同数据;
16、检测各所述相同数据中是否具有标识符,若无,验证结束;
17、若各所述相同数据至少部分具有标识符,获取具有标识符的相同数据在加密数据库内所处的子数据库;
18、获取具有标识符的相同数据所处的子数据库的序号;
19、将具有标识符的相同数据所处的子数据库的序号在预设阵列内填充;
20、将具有标识符的相同数据所处的子数据库的序号对应的坐标与各特征坐标比对以判定验证数据库是否对加密数据库进行了整体窃取。
21、作为数据库批量加密的验证方法的优选技术方案,所述将具有标识符的相同数据所处的子数据库的序号对应的坐标与各特征坐标比对以判定验证数据库是否对加密数据库进行了整体窃取包括:若将具有标识符的相同数据所处的子数据库的序号在预设阵列内填充后,与加密数据库内的各子数据库填充后的序号分布相同且标识符相符、仅覆盖各特征坐标且标识符相符,或,仅各特征坐标未被覆盖且标识符相符,判定验证数据库对加密数据库进行了整体窃取。
22、作为数据库批量加密的验证方法的优选技术方案,所述验证方法还包括:若所述验证数据库中与所述加密数据库的各相同数据仅具有第一加密算法对应的标识符或仅具有第二加密算法对应的标识符,判定验证数据库为采用单一解密方法对于加密数据库进行解密所获取。
23、本发明的有益效果为:
24、本发明提供的数据库批量加密方法通过对于子数据库随机分为若干子数据库,以及对于各子数据库的排序和编号,以及加密算法对应标识符的嵌入,一方面通过两种加密算法提高了数据加密的复杂度和安全性,能够提高数据库整体被窃取的难度,另一方面,本发明通过加密算法对应标识符在数据内的嵌入、对于子数据库的排序以及对特征坐标对应的子数据库的加密方法区分,在存在窃取行为后能够通过数据所处子数据库、子数据库对应坐标以及加密方法,对窃取的数据库进行发现和取证。
25、进一步的,本发明提供的据库批量加密的验证方法,能够通过将具有标识符的相同数据的子数据库序号填充到预设阵列,并与特征坐标比对,准确判定验证数据库是否对加密数据库进行了整体窃取,只需比对特征坐标的覆盖情况即可做出判定,减少了比对范围和复杂度。通过标识符、序号分布和特征坐标的多重验证机制,能够有效确保验证结果的准确性和可靠性。适应不同的应用场景和需求,增强了验证方法的适用性。且标识符的设置能够快速识别并判定单一解密方法获取的数据,及时发现对于数据的整体窃取行为。
1.一种数据库批量加密方法,其特征在于,包括:
2.根据权利要求1所述的数据库批量加密方法,其特征在于,在所述对各所述子数据库进行排序并生成序号时,排序遵循字段值、时间戳或字符串长度的升序顺序或降序顺序。
3.根据权利要求2所述的数据库批量加密方法,其特征在于,在所述将数据库内的数据随机分为若干子数据库时,各子数据库存储的数据量相同或处于预设数据量区间内。
4.根据权利要求3所述的数据库批量加密方法,其特征在于,所述第一加密算法为salsa20加密算法,所述第二加密算法为aes加密算法。
5.根据权利要求4所述的数据库批量加密方法,其特征在于,在将各所述子数据库的序号填充于所述预设阵列时,预设阵列的坐标数量大于或等于子数据库的数量。
6.根据权利要求5所述的数据库批量加密方法,其特征在于,序号在所述预设阵列内的填充方式为随机填充、蛇形填充、逐行填充或逐列填充。
7.根据权利要求6所述的数据库批量加密方法,其特征在于,在所述将数据库内的数据随机分为若干子数据库时,采用随机数生成法,包括为每条数据生成一个随机数以及根据随机数的值将数据分配到不同的子数据库。
8.一种应用于权利要求1-7任一项所述的数据库批量加密方法的验证方法,其特征在于,包括:
9.根据权利要求8所述的验证方法,其特征在于,所述将具有标识符的相同数据所处的子数据库的序号对应的坐标与各特征坐标比对以判定验证数据库是否对加密数据库进行了整体窃取包括:若将具有标识符的相同数据所处的子数据库的序号在预设阵列内填充后,与加密数据库内的各子数据库填充后的序号分布相同且标识符相符、仅覆盖各特征坐标且标识符相符,或,仅各特征坐标未被覆盖且标识符相符,判定验证数据库对加密数据库进行了整体窃取。
10.根据权利要求9所述的验证方法,其特征在于,所述验证方法还包括:若所述验证数据库中与所述加密数据库的各相同数据仅具有第一加密算法对应的标识符或仅具有第二加密算法对应的标识符,判定验证数据库为采用单一解密方法对于加密数据库进行解密所获取。