本发明涉及数据处理领域,尤其涉及一种数据写入方法及装置、验证方法及装置、计算机装置、可读存储介质。
背景技术:
保持数据完整性是现代存储系统的重中之重。目前,有各种各样的技术被开发和应用来改进数据完整性的保护,其中最常用、最受欢迎的就是校验和方法。
传统的针对存储系统的校验和方法一般分为两类:一类是端到端校验,另一类是磁盘校验和。一般来说,使用校验和对数据进行保护的时候,一旦数据出现非正常更改,那么在读取时重新计算的校验和并不会等于存储时计算的校验和。然而,校验和本身也会出现错误,例如,在写校验和时出现校验和部分写入却返回正确的情况,那么若使用错误的校验和去验证数据,则会造成数据完整性的误判。
技术实现要素:
本发明实施例提供了一种数据写入方法及装置、验证方法及装置、计算机装置、可读存储介质,用于避免校验和误判,提高使用校验和检测数据错误的精度,减少对系统的负面影响。
有鉴于此,本发明第一方面提供一种数据写入方法,可包括:
接收针对第一数据的写入请求;
根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和;
将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
进一步的,将采样数据和校验和按照预设格式进行处理,得到第二数据包括:
当第二数据包括至少两个采样数据时,在校验和的首尾两端分别设置至少一个采样数据,得到第二数据;或,
当第二数据包括至少一个预设魔数时,在校验和的首尾两端分别设置采样数据、预设魔数中的至少一种,得到第二数据。
进一步的,第一数据的大小为采样数据的大小的200倍至1000倍。
进一步的,第一存储区域为第一磁盘中的第一区域,第二存储区域为第二磁盘中的第二区域。
本发明第二方面提供一种验证方法,可包括:
接收针对第一数据的读取请求;
根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确。
进一步的,在将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化之前,方法还包括:
根据读取请求从第二存储区域读取第一数据;
利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
若第二校验和与第一校验和不相同,则触发将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化的步骤。
进一步的,方法还包括:
根据读取请求从第二存储区域读取第一数据;
在确定第一校验和正确之后,方法还包括:
利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
若第二校验和与第一校验和不相同,则确定第一数据错误。
进一步的,方法还包括:
若第二校验和与第一校验和相同,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
若第一采样数据与第二采样数据相同,则确定第一数据正确。
进一步的,预设格式包括:
当第二数据包括至少两个第一采样数据时,在第一校验和的首尾两端分别设置至少一个第一采样数据;或,
当第二数据包括至少一个预设魔数时,在第一校验和的首尾两端分别设置第一采样数据、预设魔数中的至少一种。
进一步的,第一数据的大小为第二采样数据的大小的200倍至1000倍。
进一步的,第一存储区域为第一磁盘中的第一区域,第二存储区域为第二磁盘中的第二区域。
本发明第三方面提供一种数据写入装置,可包括:
接收单元,用于接收针对第一数据的写入请求;
获取单元,用于根据写入请求在第一数据的预设位置获取采样数据;
生成单元,用于利用第一数据生成校验和;
处理单元,用于将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
写入单元,用于在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
进一步的,处理单元,具体用于:
当第二数据包括至少两个采样数据时,在校验和的首尾两端分别设置至少一个采样数据,得到第二数据;或,
当第二数据包括至少一个预设魔数时,在校验和的首尾两端分别设置采样数据、预设魔数中的至少一种,得到第二数据。
进一步的,第一数据的大小为采样数据的大小的200倍至1000倍。
进一步的,第一存储区域为第一磁盘中的第一区域,第二存储区域为第二磁盘中的第二区域。
本发明第四方面提供一种验证装置,可包括:
接收单元,用于接收针对第一数据的读取请求;
第一读取单元,用于根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
处理单元,用于将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
第一确定单元,用于当至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化时,则确定第一校验和正确。
进一步的,装置还包括:
第二读取单元,还用于根据读取请求从第二存储区域读取第一数据;
生成单元,用于利用第一数据生成第二校验和;
第一对比单元,用于将第二校验和与第一校验和进行对比;
触发单元,用于当第二校验和与第一校验和不相同时,则触发处理单元将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化。
进一步的,装置还包括:
第二读取单元,用于根据读取请求从第二存储区域读取第一数据;
生成单元,用于利用第一数据生成第二校验和;
第一对比单元,用于将第二校验和与第一校验和进行对比;
第二确定单元,用于当第二校验和与第一校验和不相同时,则确定第一数据错误。
进一步的,装置还包括:
第二对比单元,用于当第二校验和与第一校验和相同时,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
第三确定单元,还用于当第一采样数据与第二采样数据相同时,则确定第一数据正确。
进一步的,预设格式包括:
当第二数据包括至少两个第一采样数据时,在第一校验和的首尾两端分别设置至少一个第一采样数据;或,
当第二数据包括至少一个预设魔数时,在第一校验和的首尾两端分别设置第一采样数据、预设魔数中的至少一种。
进一步的,第一数据的大小为第二采样数据的大小的200倍至1000倍。
进一步的,第一存储区域为第一磁盘中的第一区域,第二存储区域为第二磁盘中的第二区域。
本发明第五方面提供一种计算机装置,计算机装置包括处理器,处理器用于执行存储器中存储的计算机程序时,实现如下步骤:
接收针对第一数据的写入请求;
根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和;
将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
本发明第六方面提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如下步骤:
接收针对第一数据的写入请求;
根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和;
将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
本发明第七方面提供一种计算机装置,计算机装置包括处理器,处理器用于执行存储器中存储的计算机程序时,实现如下步骤:
接收针对第一数据的读取请求;
根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确。
本发明第八方面提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如下步骤:
接收针对第一数据的读取请求;
根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供了一种数据写入方法,在接收到针对第一数据的写入请求后,可以根据写入请求在第一数据的预设位置获取采样数据,并可以将第一数据写入第一存储区域,将采样与由第一数据生成的校验和处理后得到的第二数据写入第二存储区域,其中,第二数据包括至少两个采样数据或至少一个预设魔数。由此,在对第一数据进行读取时,可以利用至少两个采样数据或至少一个预设魔数对校验和进行检验,而由于第二数据为将采样数据和校验和按照预设格式进行处理得到,则在至少两个采样数据或至少一个预设魔数未发生篡改时,可以确认第一数据对应的校验和未发生篡改,从而可以避免校验和出错但第一数据正确的误判场景,进而可以有效地减少误判率,提高系统可靠性。
附图说明
图1为本发明实施例中数据写入方法一个实施例示意图;
图2为本发明实施例中验证方法一个实施例示意图;
图3为本发明实施例中验证方法另一实施例示意图;
图4为本发明实施例中验证方法另一实施例示意图;
图5为本发明实施例中数据写入装置一个实施例示意图;
图6为本发明实施例中验证装置一个实施例示意图;
图7为本发明实施例中验证装置另一实施例示意图;
图8为本发明实施例中验证装置另一实施例示意图;
图9为本发明实施例中验证装置另一实施例示意图。
具体实施方式
本发明实施例提供了一种数据写入方法及装置、验证方法及装置、计算机装置。可读存储介质,用于避免校验和误判,提高使用校验和检测数据错误的精度,减少对系统的负面影响。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中数据写入方法一个实施例包括:
101、接收针对第一数据的写入请求;
本实施例中,需要对第一数据进行存储时,可以接收针对第一数据的写入请求。
102、根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和;
本实施例中,接收针对第一数据的写入请求后,可以根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和。
具体的,接收针对第一数据的写入请求后,可以获取第一数据,并可以按照预设定义在第一数据的预设位置进行采样,以得到采样数据。其中,该预设位置可以为第一数据的头部,可以为第一数据的尾部,也可以为第一数据的中部,还可以将第一数据作为采样数据,此处不做具体限定。
需要说明的是,本实施例中采样数据的大小可以根据实际需要进行设置,可选的,为了避免采样数据过大而造成的存储空间的占用,可以将采样数据的大小设置得稍小些。可选的,第一数据的大小为采样数据的大小的200倍至1000倍。
本实施例中,利用第一数据生成校验和的方法可以参照现有技术,此处不再赘述。
103、将采样数据和校验和按照预设格式进行处理,得到第二数据;
本实施例中,根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和后,可以将采样数据和校验和按照预设格式进行处理,得到第二数据。其中,第二数据可以包括至少两个采样数据或至少一个预设魔数。
具体的,为了利于对第二数据中的校验和进行验证,第二数据的数据格式可以如下方式:
第一种:
当第二数据可以包括至少两个采样数据时,可以利用这至少两个采样数据的比较来验证校验和是否发生篡改,假设包括两个采样数据,采样数据为a,校验和为b,那么在实际应用中,可以将采样数据与校验和按照预设格式进行组合,得到第二数据,例如aab、aba、baa等数据形式。
优选的,由于数据被篡改时,从数据的首尾两端篡改的可能性较大,则为了提高发现校验和的篡改可能性,可以在校验和的首尾两端分别设置至少一个采样数据,得到第二数据,即诸如aba的形式。
第二种:
当第二数据可以包括至少一个预设魔数时,在将采样数据与校验和按照预设格式进行处理时,可以将采用数据、校验和、至少一个预设魔数进行组合,得到第二数据。例如,沿用上述的说明,假设预设魔数为c,则第二数据的形式可以为cba、cab、abc等。
优选的,为了提高发现校验和的篡改可能性,可以在校验和的首尾两端分别设置采样数据、预设魔数中的至少一种,得到第二数据,即诸如cab、abc。
其中,当预设魔数为一个以上时,可以将这一个以上的预设魔数设于校验和与采用数据的首尾段,如cabc、cbac,以进一步提高发现采样数据的篡改可能性。
可以理解的是,本实施例中,当预设魔数为一个以上时,这一个以上的预设魔数彼此间可以相同,也可以不相同,此处不做具体限定。
需要说明的是,本实施例中,当第二数据可以包括至少一个预设魔数时,采样数据也可以为两个以上,以能够通过对至少一个预设魔数、至少一个采样数据进行验证来判断校验和是否发生篡改,此处不做具体限定。
104、在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
本实施例中,将采样数据和校验和按照预设格式进行处理,得到第二数据,可以在第一存储区域写入第一数据,并可以按照预设规则在第二存储区域写入第二数据。
具体的,第二数据的存储是为了在第一数据读取时,能够验证第一数据的正确性,由此,在第一数据与第二数据进行存储时,需要建立第一数据与第二数据的映射关系,以在读取第一数据时,能够根据该映射关系读取第二数据,例如,可以建立第一存储区域与第二存储区域的映射关系,从而可以确定第一存储区域存储的数据与第二存储区域存储的数据具有关联性。
可以理解的是,基于第一数据、第二数据的使用可能性,第一存储区域、第二存储区域可以有不同的属性,例如磁盘、缓存等,此处不做具体限定。
本实施例中,为了加强第一数据、第二数据的长久性,第一存储区域可以为第一磁盘中的第一区域,第二存储区域可以为第二磁盘中的第二区域。其中,第一磁盘与第二磁盘可以为同一磁盘,也可以不为同一磁盘,当第一磁盘与第二磁盘为同一磁盘时,第一区域与第二区域可以为同一区域,也可以不为同一区域,此处不做具体限定。
本实施例中,在接收到针对第一数据的写入请求后,可以根据写入请求在第一数据的预设位置获取采样数据,并可以将第一数据写入第一存储区域,将采样与由第一数据生成的校验和处理后得到的第二数据写入第二存储区域,其中,第二数据包括至少两个采样数据或至少一个预设魔数。由此,在对第一数据进行读取时,可以利用至少两个采样数据或至少一个预设魔数对校验和进行检验,而由于第二数据为将采样数据和校验和按照预设格式进行处理得到,则在至少两个采样数据或至少一个预设魔数未发生篡改时,可以确认第一数据对应的校验和未发生篡改,从而可以避免校验和出错但第一数据正确的误判场景,进而可以有效地减少误判率,提高系统可靠性。
上面对数据写入方法进行了描述,在数据写入后,可以读取写入的数据进行使用,在读取数据后,可以对写入的数据进行相关的校验,以保证正确数据的正确使用,下面进行具体说明:
请参阅图2,本发明实施例中验证方法一个实施例包括:
201、接收针对第一数据的读取请求;
本实施例中,需要对第一数据进行使用时,可以接收针对第一数据的读取请求。
202、根据读取请求从第一存储区域读取第一数据对应的第二数据;
本实施例中,接收针对第一数据的读取请求后,可以根据读取请求从第一存储区域读取第一数据对应的第二数据。其中,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且可以包括至少两个第一采样数据或至少一个预设魔数。
具体的,第二数据可以用于第一数据的校验,第一数据与第二数据在写入时可以建立映射关系,由此,在需要读取第一数据时,可以根据该映射关系在第一存储区域读取第一数据对应的第二数据。
其中,由于第二数据可以用于第一数据的校验,则第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,可以包括至少两个第一采样数据或至少一个预设魔数。
基于此,第二数据在写入第一存储区域时,其预设格式可以如下:
当第二数据包括至少两个第一采样数据时,在第一校验和的首尾两端分别设置至少一个第一采样数据;或,
当第二数据包括至少一个预设魔数时,在第一校验和的首尾两端分别设置第一采样数据、预设魔数中的至少一种。
上述第二数据的数据格式的相应内容可以参照图1所示实施例中步骤103中的内容,此处不再赘述。
203、将第二数据中的至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
本实施例中,根据读取请求从第一存储区域读取第一数据对应的第二数据后,可以将第二数据中的至少两个第一采样数据进行对比,并可以检测至少一个预设魔数是否发生变化。
具体的,由于第二数据的数据格式有多种形式,则在验证第一校验和是否被篡改时,可以主要通过如下方式:
第一种:
当第二数据包括至少两个第一采样数据时,可以将至少两个第一采样数据进行对比。在至少两个第一采样数据写入时,至少两个第一采样数据是完全相同的,则在将至少两个第一采样数据进行对比时,只要其中一个第一采样数据与其它第一采样数据不一样,则可以默认第二数据发生了篡改,第一校验和可能出错,反之,当所有第一采样数据均相同时,则可以默认为第二数据未发生篡改,第一校验和未出错。
第二种:
当第二数据包括至少一个预设魔数时,可以检测至少一个预设魔数是否发生变化。由于魔数是固定的,则在本实施例中,一旦其中一个预设魔数发生变化,则可以默认第二数据发生了篡改,第一校验和可能出错,反之,当所有第一采样数据均相同时,则可以默认为第二数据未发生篡改,第一校验和未出错。
可以理解的是,在第二种方式中,第二数据还可以包括至少两个第一采样数据,则可以同时对至少两个第一采样数据、至少一个预设魔数进行检测,以加强验证的精度,则只有至少一个预设魔数均未发生变化,且至少两个第一采样数据均相同,才可以默认为第二数据未发生篡改,此处不做具体限定。
204、若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确;
本实施例中,当第二数据包括至少一个预设魔数时,若确定至少两个第一采样数据均相同,则可以确定第一校验和正确,或者,当第二数据包括至少一个预设魔数时,若确定至少一个预设魔数未发生变化,则也可以确定第一校验和正确。
205、若至少两个第一采样数据不完全相同,或至少一个预设魔数中的一个或多个发生变化,则确定第一校验和出错。
本实施例中,当第二数据包括至少一个预设魔数时,若确定至少两个第一采样数据不完全相同,则可以确定第一校验和出错,或者,当第二数据包括至少一个预设魔数时,若确定至少一个预设魔数中的一个或多个发生变化,则也可以确定第一校验和出错。在确定第一校验和出错后,可以进行第一校验和的报错,以使得工作人员可以分析第一校验和的出错原因。
本实施例中,相对于现有技术而言,在接收到针对第一数据的读取请求后,可以先行对第一数据对应的第二数据中的第一校验和进行验证,以能够在利用第一校验和对第一数据进行验证前,可以预先判断第一校验和的正确性,从而有利于避免第一校验和出错但第一数据正确的误判场景,进而可以有效地减少误判率,提高系统可靠性。
可以理解的是,本实施例中,还可以对第一校验和与第一数据生成的第二校验和进行对比,以提高第一校验和的验证效率,且可以对第一数据进行验证,下面分别进行具体说明:
请参阅图3,本发明实施例中验证方法另一实施例包括:
301、接收针对第一数据的读取请求;
302、根据读取请求从第一存储区域读取第一数据对应的第二数据;
本实施例中的步骤301至步骤302与图2所示实施例中的步骤201至步骤202相同,此处不再赘述。
303、根据读取请求从第二存储区域读取第一数据;
本实施例中,接收到针对第一数据的读取请求后,还可以根据读取请求从第二存储区域读取第一数据。
可以理解的是,基于第一数据、第二数据的使用可能性,第一存储区域、第二存储区域可以有不同的属性,例如磁盘、缓存等,此处不做具体限定。
其中,第一存储区域可以为第一磁盘中的第一区域,第二存储区域可以为第二磁盘中的第二区域。其中,第一磁盘与第二磁盘可以为同一磁盘,也可以不为同一磁盘,当第一磁盘与第二磁盘为同一磁盘时,第一区域与第二区域可以为同一区域,也可以不为同一区域,此处不做具体限定。
可以理解的是,本实施例中的步骤303在步骤302之前执行,也可以与步骤302同时执行,此处不做具体限定。
304、利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
本实施例中,根据读取请求从第二存储区域读取第一数据后,可以利用第一数据生成第二校验和,并可以将第二校验和与第一校验和进行对比,以判断第二校验和是否与第一校验和相同。
本实施例中,利用第一数据生成第二校验和的方法可以参照现有技术,此处不再赘述。
305、若第二校验和与第一校验和不相同,则将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
306、若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确;
本实施例中的步骤305至步骤306与图2所示实施例中的步骤203至步骤204相同,此处不再赘述。
可以理解的是,本实施例中,在第二校验和与第一校验和不相同的情况下,要么第一校验和出错,要么第一数据出错,要么第一校验和与第一数据均出错,那么当至少两个第一采样数据均相同时,可以说明第一校验和正确,则第一数据出错。在确定第一数据出错后,可以进行第一数据的报错,以使得工作人员可以分析第一数据的出错原因。
307、若第二校验和与第一校验和相同,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
本实施例中,若第二校验和于第一校验和相同,则可以默认为第一校验和正确,那么为了进一步校验第一数据的正确性,可以将第一采样数据与第一数据的预设位置的第二采样数据进行对比。
具体的,第一采样数据为写入第一数据时,在第一数据的预设位置进行采样得到,则为了防止篡改后的第一数据与篡改前的第一数据生成的校验和相同而误认为第一数据未发生篡改造成的漏判,在读取第一数据后,可以在第一数据对应于第一采样数据的预设位置获取第二采样数据,并可以将第一采样数据与第二采样进行对比。
其中,为了避免第一采样数据过大而造成第二数据对存储空间的占用,由于第一采样数据与第二采样数据的大小应该相同,则第一数据的大小为可以第二采样数据的大小的200倍至1000倍。
308、若第一采样数据与第二采样数据相同,则确定第一数据正确;
本实施例中,若第一采样数据与第二采样数据相同,则可以确定第一数据正确。
可以理解的是,本实施例中,若第一采样数据与第二采样数据不相同,则可以认为第一数据出错,即可能篡改后的第一数据与篡改前的第一数据生成的校验和相同。在确定第一数据出错后,可以进行第一数据的报错,以使得工作人员可以分析第一数据的出错原因。
309、若第一采样数据与第二采样数据不相同,则确定第一数据错误;
本实施例中,若第一采样数据与第二采样数据不相同,则可以确定第一数据错误。
进一步的,在确定第一数据出错后,可以进行第一数据的报错,以使得工作人员可以分析第一数据的出错原因。
310、若至少两个第一采样数据不完全相同,或至少一个预设魔数中的一个或多个发生变化,则确定第一校验和出错。
本实施例中的步骤308与图2所示实施例中的步骤205相同,此处不再赘述。
请参阅图4,本发明实施例中验证方法另一实施例包括:
401、接收针对第一数据的读取请求;
402、根据读取请求从第一存储区域读取第一数据对应的第二数据;
403、将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
404、若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确;
本实施例中的步骤401至步骤404与图2所示实施例中的步骤201至步骤204相同,此处不再赘述。
405、根据读取请求从第二存储区域读取第一数据;
本实施例中,接收到针对第一数据的读取请求后,还可以根据读取请求从第二存储区域读取第一数据。
可以理解的是,本实施例中的步骤405可以在步骤404之前执行,也可以与步骤404同时执行,此处不做具体限定。
406、利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
本实施例中的步骤406与图3所示实施例中的步骤304相同,此处不再赘述。
407、若第二校验和与第一校验和相同,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
408、若第一采样数据与第二采样数据相同,则确定第一数据正确;
本实施例中的步骤407至步骤408与图3所示实施例中的步骤307至步骤308相同,此处不再赘述。
409、若第一采样数据与第二采样数据不相同,则确定第一数据错误;
本实施例中,若第一采样数据与第二采样数据不相同,则可以确定第一数据错误。
进一步的,在确定第一数据出错后,可以进行第一数据的报错,以使得工作人员可以分析第一数据的出错原因。
410、若第二校验和与第一校验和不相同,则确定第一数据错误;
本实施例中,在第一校验和正确的情况下,若第二校验和与第一校验和不相同,则可以确定第一数据错误。
进一步的,在确定第一数据出错后,可以进行第一数据的报错,以使得工作人员可以分析第一数据的出错原因。
411、若至少两个第一采样数据不完全相同,或至少一个预设魔数中的一个或多个发生变化,则确定第一校验和出错。
本实施例中的步骤411与图2所示实施例中的步骤205相同,此处不再赘述。
上面对本发明实施例中的数据写入方法、验证方法分别进行了说明,下面对本发明实施例中的数据写入装置、验证装置分别进行说明:
请参阅图5,本发明实施例中数据写入装置一个实施例包括:
接收单元501,用于接收针对第一数据的写入请求;
获取单元502,用于根据写入请求在第一数据的预设位置获取采样数据;
生成单元503,用于利用第一数据生成校验和;
处理单元504,用于将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
写入单元505,用于在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
可选的,在本发明的一些实施例中,处理单元504,可以进一步具体用于:
当第二数据包括至少两个采样数据时,在校验和的首尾两端分别设置至少一个采样数据,得到第二数据;或,
当第二数据包括至少一个预设魔数时,在校验和的首尾两端分别设置采样数据、预设魔数中的至少一种,得到第二数据。
请参阅图6,本发明实施例中验证装置一个实施例包括:
接收单元601,用于接收针对第一数据的读取请求;
第一读取单元602,用于根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
处理单元603,用于将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
第一确定单元604,用于当至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化时,则确定第一校验和正确。
可选的,在本发明的一些实施例中,基于图6,如图7所示,装置可以还包括:
第二读取单元605,用于根据读取请求从第二存储区域读取第一数据;
生成单元606,用于利用第一数据生成第二校验和;
第一对比单元607,用于将第二校验和与第一校验和进行对比;
触发单元608,用于当第二校验和与第一校验和不相同时,则触发处理单元将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化。
可选的,在本发明的一些实施例中,基于图6,如图8所示,装置还可以进一步包括:
第二读取单元605,还用于根据读取请求从第二存储区域读取第一数据;
生成单元606,用于利用第一数据生成第二校验和;
第一对比单元607,用于将第二校验和与第一校验和进行对比;
第二确定单元609,用于当第二校验和与第一校验和不相同时,则确定第一数据错误。
可选的,在本发明的一些实施例中,基于图8为例进行说明,如图9,装置还可以进一步包括:
第二对比单元610,用于当第二校验和与第一校验和相同时,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
第三确定单元611,还用于当第一采样数据与第二采样数据相同时,则确定第一数据正确。
上面从模块化功能实体的角度对本发明实施例中的数据写入装置、验证装置进行了描述,下面从硬件处理的角度对本发明实施例中的计算机装置进行描述:
基于数据写入方法,本发明实施例中计算机装置一个实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
接收针对第一数据的写入请求;
根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和;
将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
在本发明的一些实施例中,处理器用于执行存储器中存储的计算机程序时,还可以实现如下步骤:
当第二数据包括至少两个采样数据时,在校验和的首尾两端分别设置至少一个采样数据,得到第二数据;或,
当第二数据包括至少一个预设魔数时,在校验和的首尾两端分别设置采样数据、预设魔数中的至少一种,得到第二数据。
基于验证方法,本发明实施例中计算机装置另一实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
接收针对第一数据的读取请求;
根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确。
在本发明的一些实施例中,处理器用于执行存储器中存储的计算机程序时,还可以实现如下步骤:
根据读取请求从第二存储区域读取第一数据;
利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
若第二校验和与第一校验和不相同,则触发将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化的步骤。
在本发明的一些实施例中,处理器用于执行存储器中存储的计算机程序时,还可以实现如下步骤:
根据读取请求从第二存储区域读取第一数据;
在确定第一校验和正确之后,方法还包括:
利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
若第二校验和与第一校验和不相同,则确定第一数据错误。
在本发明的一些实施例中,处理器用于执行存储器中存储的计算机程序时,还可以实现如下步骤:
若第二校验和与第一校验和相同,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
若第一采样数据与第二采样数据相同,则确定第一数据正确。
可以理解的是,上述说明的计算机装置中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在诸如所述数据写入装置中的执行过程。例如,所述计算机程序可以被分割成上述数据写入装置中的各单元,各单元可以实现如上述相应数据写入装置说明的具体功能。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
基于数据写入方法,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:
接收针对第一数据的写入请求;
根据写入请求在第一数据的预设位置获取采样数据,并利用第一数据生成校验和;
将采样数据和校验和按照预设格式进行处理,得到第二数据,第二数据包括至少两个采样数据或至少一个预设魔数;
在第一存储区域写入第一数据,并按照预设规则在第二存储区域写入第二数据。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,还可以实现如下步骤:
当第二数据包括至少两个采样数据时,在校验和的首尾两端分别设置至少一个采样数据,得到第二数据;或,
当第二数据包括至少一个预设魔数时,在校验和的首尾两端分别设置采样数据、预设魔数中的至少一种,得到第二数据。
基于验证方法,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:
接收针对第一数据的读取请求;
根据读取请求从第一存储区域读取第一数据对应的第二数据,第二数据为将第一校验和与第一采样数据按照预设格式进行处理得到,且包括至少两个第一采样数据或至少一个预设魔数;
将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化;
若至少两个第一采样数据均相同,或至少一个预设魔数均未发生变化,则确定第一校验和正确。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,还可以实现如下步骤:
根据读取请求从第二存储区域读取第一数据;
利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
若第二校验和与第一校验和不相同,则触发将至少两个第一采样数据进行对比,或检测至少一个预设魔数是否发生变化的步骤。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,还可以实现如下步骤:
根据读取请求从第二存储区域读取第一数据;
在确定第一校验和正确之后,方法还包括:
利用第一数据生成第二校验和,并将第二校验和与第一校验和进行对比;
若第二校验和与第一校验和不相同,则确定第一数据错误。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,还可以实现如下步骤:
若第二校验和与第一校验和相同,则将第一采样数据与第一数据的预设位置的第二采样数据进行对比;
若第一采样数据与第二采样数据相同,则确定第一数据正确。
可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本发明实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。