本发明涉及数据迁移的技术领域,特别是涉及数据迁移过程中数据完整性校验方法及装置。
背景技术:
数据迁移是数据系统整合中保证系统平滑升级和更新的关键部分。数据迁移过程中很容易发生数据丢失、数据被恶意篡改等问题,数据的破坏将给整个项目造成重大的损失。因此数据完整性的校验在数据迁移过程中显得尤为重要。
数据完整性检测主要检测数据在迁移过程中是否正确持有原数据库中的数据,防止数据在进行迁移过程中发生丢失、篡改等情况。目前的数据完整性检测方法存在以下不足:
1.采用完整性指示码的算法,整个算法过程复杂程度高,效率低下;
2.没有充分利用磁盘空间和CPU;
3.只能进行单向验证,在数据出现完整性问题时,不能定位出现问题的数据位置;
4.一般情况下利用MD5进行数据完整性校验的时候可能无法避免算法本身的碰撞问题,也不能定位出现问题的具体位置。
因此针对以上的不足,设计了一种基于MD5分组数据完整性校验和回溯方法,可以充分利用CPU提高计算效率,弥补MD5算法本身只能串行计算的不足,既可以有效解决碰撞问题,又可以回溯异常数据。
技术实现要素:
本发明目的是提供一种数据迁移过程中数据完整性校验的方法及装置,通过采用相同加密方法对待迁移数据和迁移后数据进行MD5加密,加入标签的方式,保证数据迁移过程的完整性,且一旦出现问题可以回溯异常数据。
为了实现上述目的,本发明采用以下的技术方案。
一种数据迁移过程中数据完整性校验的方法,包括以下步骤:
对待迁移数据进行MD5加密,获取加密字符串;
对迁移后数据进行MD5加密,获取加密字符串;
比对待迁移数据和迁移后数据的加密字符串;
根据比对结果进行异常数据回溯。
优选地,所述对待迁移数据进行MD5加密,获取加密字符串,包括以下步骤:
设定一个由不同大小的分组因子组成的分组因子集;
将待迁移数据文件按分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;
为待迁移数据的每个组添加标签;
对待迁移数据进行三次MD5加密,获取加密字符串;
将待迁移数据加密后所得的加密字符串保存到日志文件。
优选地,所述对迁移后数据进行MD5加密,获取加密字符串,包括以下步骤:
将迁移后的数据按照待迁移数据的分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;
对迁移后的数据进行三次MD5加密,获取加密字符串。
优选地,所述对待迁移数据进行三次MD5加密,获取加密字符串,包括以下加密步骤:
对待迁移数据的每个组的剩余部分进行第一次数据加密,输出第一加密字符串;
对待迁移数据的每个组的定长部分和第一加密字符串连接的字符串进行第二次数据加密,输出第二加密字符串;
对所有组的第二加密字符串连成的字符串进行第三次数据加密,输出第三加密字符串。
优选地,所述比对待迁移数据和迁移后数据的加密字符串,包括:
将迁移后的数据的加密字符串与待迁移数据的加密字符串进行比对,相同则输出True,不同则输出False并将比对结果保存在比对结果报告中。
优选地,根据比对结果进行异常数据回溯,包括:
找出比对结果报告中比对结果为False的组;
根据比对结果为False的组的定长部分及标签,定位到待迁移数据中相应的数据的位置;
对待迁移数据中为False的组的数据进行修正或重传。
优选地,所述对待迁移数据进行MD5加密和对迁移后数据进行MD5加密依据的加密方式相同。
本发明还提供了基于上述一种数据迁移过程中数据完整性校验的方法的一种数据迁移过程中数据完整性校验的装置,包括:
第一数据加密模块,用于对待迁移数据进行MD5加密,获取加密字符串;
第二数据加密模块,用于对迁移后数据进行MD5加密,获取加密字符串;
比对模块,用于比对待迁移数据和迁移后数据的加密字符串;
回溯模块,用于根据比对结果进行异常数据回溯。
优选地,第一数据加密模块进一步包括:
分组因子设定模块,用于设定一个由不同大小的分组因子组成的分组因子集;
第一分组模块,用于将待迁移数据文件按分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;
标签模块,用于为不同的组添加不同的标签;
第一数据加密子模块,用于对迁移后的数据进行三次MD5加密,获取加密字符串;
日志模块,用于将待迁移数据加密后所得的加密字符串保存到日志文件。
优选地,第二数据加密模块进一步包括:
第二分组模块,用于将迁移后的数据按照待迁移数据的分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;
第二数据加密子模块,用于对迁移后的数据进行三次MD5加密,获取加密字符串。
与现有技术相比,本发明具有以下优点:
1.通过对待迁移数据按照不同规则进行数据加密,解决MD5算法的碰撞问题;
2.通过将待迁移数据分组,在分组中添加标签,在数据出现问题时,可以准确定位出现问题的数据位置,提升异常数据处理效率;
3.通过采用并行计算各分组数据的MD5加密字符串,提高空间上的使用率,同时提升了CPU处理效率。
附图说明
图1是本发明一种数据迁移过程中数据完整性校验的方法的流程示意图之一。
图2是本发明一种数据迁移过程中数据完整性校验的方法的流程示意图之二。
图3是本发明一种数据迁移过程中数据完整性校验的装置的结构示意图之一。
图4是本发明一种数据迁移过程中数据完整性校验的装置的结构示意图之二。
具体实施方式
为了便于理解,对本发明中出现的部分名词作以下解释说明:
MD5:Message-Digest Algorithm 5,消息-摘要算法5,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
实施例1
如图1所示,本发明的一种数据迁移过程中数据完整性校验的方法,包括以下步骤:
步骤S101,对待迁移数据进行MD5加密,获取加密字符串;
步骤S102,对迁移后数据进行MD5加密,获取加密字符串;
步骤S103,比对待迁移数据和迁移后数据的加密字符串;
步骤S104,根据比对结果进行异常数据回溯。
实施例2
如图2所示,本发明的另一种数据迁移过程中数据完整性校验的方法,包括以下步骤:
步骤S201,设定一个由不同大小的分组因子组成的分组因子集;
步骤S202,将待迁移数据文件按分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;
步骤S203,为待迁移数据的每个组添加标签;
步骤S204,对待迁移数据进行三次MD5加密,获取加密字符串;
步骤S205,将待迁移数据加密后所得的加密字符串保存到日志文件;
步骤S206,将迁移后的数据按照待迁移数据的分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;
步骤S207,对迁移后的数据进行三次MD5加密,获取加密字符串;
步骤S208,将迁移后的数据的加密字符串与待迁移数据的加密字符串进行比对,相同则输出True,不同则输出False并将比对结果保存在比对结果报告中;
步骤S209,找出比对结果报告中比对结果为False的组;
步骤S210,根据比对结果为False的组的定长部分及标签,定位到待迁移数据中相应的数据的位置;
步骤S211,对待迁移数据中为False的组的数据进行修正或重传。
其中步骤S204具体包括:
步骤S2041,对待迁移数据的每个组的剩余部分进行第一次数据加密,输出第一加密字符串;
步骤S2042,对待迁移数据的每个组的定长部分和第一加密字符串连接的字符串进行第二次数据加密,输出第二加密字符串;
步骤S2043,对所有组的第二加密字符串连成的字符串进行第三次数据加密,输出第三加密字符串。
其中步骤S207具体包括:
步骤S2071,对迁移后的数据的每个组的剩余部分进行第一次数据加密,输出第一加密字符串;
步骤S2072,对迁移后的数据的每个组的定长部分和第一加密字符串连接的字符串进行第二次数据加密,输出第二加密字符串;
步骤S2073,对所有组的第二加密字符串连成的字符串进行第三次数据加密,输出第三加密字符串。
作为一种可实施的方式,本实施例中的分组因子集设定为{200,300,400}。
作为一种可实施的方式,本实施例中待迁移数据和迁移后数据的每组数据的定长部分指定为前100个字符。
实施例3
如图3所示,本发明的一种数据迁移过程中数据完整性校验的装置,包括第一数据加密模块301、第二数据加密模块302、比对模块303和回溯模块304,第一数据加密模块301依次连接第二数据加密模块302、比对模块303和回溯模块304。
第一数据加密模块301,用于对待迁移数据进行MD5加密,获取加密字符串;第二数据加密模块302,用于对迁移后数据进行MD5加密,获取加密字符串;比对模块303,用于比对待迁移数据和迁移后数据的加密字符串;回溯模块304,用于根据比对结果进行异常数据回溯。
实施例4
如图4所示,本发明的另一种数据迁移过程中数据完整性校验的装置,包括第一数据加密模块中的分组因子设定模块401、第一数据加密模块中的第一分组模块402、第一数据加密模块中的标签模块403、第一数据加密模块中的第一数据加密子模块404、第一数据加密模块中的日志模块405、第二数据加密模块中的第二分组模块406、第二数据加密模块中的第二数据加密子模块407、比对模块408、回溯模块409,第一数据加密模块中的分组因子设定模块401依次连接第一数据加密模块中的第一分组模块402、第一数据加密模块中的标签模块403、第一数据加密模块中的第一数据加密子模块404、第一数据加密模块中的日志模块405、第二数据加密模块中的第二分组模块406、第二数据加密模块中的第二数据加密子模块407、比对模块408、回溯模块409。
第一数据加密模块中的分组因子设定模块401,用于设定一个由不同大小的分组因子组成的分组因子集;第一数据加密模块中的第一分组模块402,用于将待迁移数据文件按分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;第一数据加密模块中的标签模块403,用于为不同的组添加不同的标签;第一数据加密模块中的第一数据加密子模块404,用于对迁移后的数据进行三次MD5加密,获取加密字符串;第一数据加密模块中的日志模块405,用于将待迁移数据加密后所得的加密字符串保存到日志文件;第二数据加密模块中的第二分组模块406,用于将迁移后的数据按照待迁移数据的分组因子分成不同大小的组,并将每个组中的数据分割成定长部分和剩余部分;第二数据加密模块中的第二数据加密子模块407,用于对迁移后的数据进行三次MD5加密,获取加密字符串;比对模块408,用于比对待迁移数据和迁移后数据的加密字符串;回溯模块409,用于根据比对结果进行异常数据回溯。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。