数据写入方法及装置、数据读取方法及装置与流程

文档序号:11412221阅读:212来源:国知局

技术领域
:】本发明涉及互联网
技术领域
:,尤其涉及一种数据写入方法及装置、数据读取方法及装置。
背景技术
::随着大数据时代的到来,数据量不断增加,数据库的访问量也不断增大,用户对数据的访问速度要求也越来越高。通常,为了提高数据的访问速度,需要将要访问的数据写入数据服务器的内存,再进行访问。然而,数据访问安全性也不容忽视,目前一般通过软件对写入数据进行加密的方式来实现访问安全,但这会降低数据读取的速度。因此,面对数据访问速度和数据访问安全性之间的矛盾,如何采用合理的数据写入和数据读取方法是本领域技术人员亟待解决的问题。技术实现要素:有鉴于此,本发明实施例提供了一种数据写入方法及装置、数据读取方法及装置,用以解决现有技术中数据访问速度与数据访问安全无法兼顾的问题。第一方面,本发明实施例提供了一种数据写入方法,包括:接收数据写入请求,所述数据写入请求包括写入数据和请求密钥;计算所述请求密钥的第一哈希值;当写入位置不存在所述写入数据时,记录所述第一哈希值,并基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:当所述写入位置存在所述写入数据时,判断所述第一哈希值与所述写入数据对应的第二哈希值是否相同;若是,基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。第二方面,本发明实施例提供了一种数据写入方法,包括:接收数据写入请求,所述数据写入请求包括写入数据;当写入位置不存在所述写入数据时,记录所述第一哈希值为空,并将所述写入数据存储至所述写入位置。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:当所述写入位置存在所述写入数据时,判断所述写入数据对应的第二哈希值是否为空;若是,将所述写入数据存储至所述写入位置。第三方面,本发明实施例提供了一种数据读取方法,包括:接收数据读取请求,所述数据读取请求包括读取信息和请求密钥;计算所述请求密钥的第一哈希值;判断所述第一哈希值和所述读取信息对应待读取数据的第二哈希值是否相同;若是,基于所述请求密钥对所述待读取数据进行读取。第四方面,本发明实施例提供了一种数据读取方法,包括:接收数据读取请求,所述数据读取请求包括读取信息;判断所述读取信息对应待读取数据的第二哈希值是否为空;若是,对所述待读取数据进行读取。第五方面,本发明实施例提供了一种数据写入装置,包括:接收模块,用于接收数据写入请求,所述数据写入请求包括写入数据和请求密钥;计算模块,用于计算所述请求密钥的第一哈希值;第一写入模块,用于当写入位置不存在所述写入数据时,记录所述第一哈希值,并基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:第二写入模块,用于当所述写入位置存在所述写入数据时,判断所述第一哈希值与所述写入数据对应的第二哈希值是否相同;若是,基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。第六方面,本发明实施例提供了一种数据写入装置,包括:接收模块,用于接收数据写入请求,所述数据写入请求包括写入数据;第一写入模块,用于当写入位置不存在所述写入数据时,记录所述第一哈希值为空,并将所述写入数据存储至所述写入位置。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:第二写入模块,用于当所述写入位置存在所述写入数据时,判断所述写入数据对应的第二哈希值是否为空;若是,将所述写入数据存储至所述写入位置。第七方面,本发明实施例提供了一种数据读取装置,包括:接收模块,用于接收数据读取请求,所述数据读取请求包括读取信息和请求密钥;计算模块,用于计算所述请求密钥的第一哈希值;判断模块,用于判断所述第一哈希值和所述读取信息对应待读取数据的第二哈希值是否相同;读取模块,用于若是,基于所述请求密钥对所述待读取数据进行读取。第八方面,本发明实施例提供了一种数据读取装置,包括:接收模块,用于接收数据读取请求,所述数据读取请求包括读取信息;判断模块,用于判断所述读取信息对应待读取数据的第二哈希值是否为空;判断模块,用于若是,对所述待读取数据进行读取。上述技术方案中的一个技术方案具有如下有益效果:本发明实施例中,包括数据写入过程与数据读取两个过程,记录写入数据的哈希值后,对该写入数据进行加密存储,在数据读取过程,当读取请求秘钥的哈希值与待读取数据的哈希值相匹配时,才可读取对应数据,与现有技术相比,可以只保存写入数据的哈希值,无需保存其请求密钥,不同的数据可以使用不同的密钥,故可以在保证数据访问安全性的前提下,兼顾了数据访问速度。【附图说明】为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1是本发明实施例所提供的一种数据写入方法的流程示意图;图2是本发明实施例所提供的另一种数据写入方法的流程示意图;图3是本发明实施例所提供的一种数据读取方法的流程示意图;图4是本发明实施例所提供的另一种数据读取方法的流程示意图;图5是本发明实施例所提供的一种数据写入装置的功能方块图;图6是本发明实施例所提供的另一种数据写入装置的功能方块图;图7是本发明实施例所提供的一种数据读取装置的功能方块图;图8是本发明实施例所提供的另一种数据读取装置的功能方块图。【具体实施方式】为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述哈希值,但这些哈希值不应限于这些术语。这些术语仅用来将哈希值彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一哈希值也可以被称为第二哈希值,类似地,第二哈希值也可以被称为第一哈希值。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。当数据写入请求包括写入数据和请求密钥时,本发明实施例给出一种数据写入方法,请参考图1,其为本发明实施例所提供的一种数据写入方法的流程示意图,如图所示,该方法包括以下步骤:步骤s101,接收数据写入请求,所述数据写入请求包括写入数据和请求密钥。步骤s102,计算所述请求密钥的第一哈希值。步骤s103,当写入位置不存在所述写入数据时,记录所述第一哈希值,并基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。需要说明的是,当数据写入请求中包括请求密钥(即请求密钥不为空)时,计算所述请求密钥的第一哈希值,当写入位置不存在所述写入数据时,记录所述第一哈希值,将请求密钥和写入数据传输至加密硬件模块进行加密后,存储至所述写入位置。相应地,当所述写入位置存在所述写入数据时,写入步骤包括:a)判断所述第一哈希值与所述写入数据对应的第二哈希值是否相同;b)若是,基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置;c)若否,反馈密钥错误通知,并禁止数据写入。当数据写入请求只包括写入数据,不包括请求密钥时,本发明实施例给出另一种数据写入方法,请参考图2,其为本发明实施例所提供的另一种数据写入方法的流程示意图,如图所示,该方法包括以下步骤:步骤s201,接收数据写入请求,所述数据写入请求包括写入数据。步骤s202,当写入位置不存在所述写入数据时,记录所述第一哈希值为空,并将所述写入数据存储至所述写入位置。需要说明的是,当数据写入请求中不包括请求密钥(即请求密钥为空)时,且当写入位置不存在所述写入数据时,记录所述第一哈希值为空,将写入数据以明文的形式直接存储至所述写入位置。相应地,当所述写入位置存在所述写入数据时,写入步骤包括:a)当所述写入位置存在所述写入数据时,判断所述写入数据对应的第二哈希值是否为空;b)若是,将所述写入数据存储至所述写入位置;c)若否,反馈密钥错误通知,并禁止数据写入。当数据读取请求包括读取信息和请求密钥时,本发明实施例给出一种数据读取方法,请参考图3,其为本发明实施例所提供的一种数据读取方法的流程示意图,如图所示,该方法包括以下步骤:步骤s301,接收数据读取请求,所述数据读取请求包括读取信息和请求密钥。步骤s302,计算所述请求密钥的第一哈希值。步骤s303,判断所述第一哈希值和所述读取信息对应待读取数据的第二哈希值是否相同。步骤s304,若是,基于所述请求密钥对所述待读取数据进行读取。需要说明的是,当数据读取请求中包括请求密钥(即请求密钥不为空)时,计算所述请求密钥的第一哈希值,将请求密钥传输至解密硬件模块进行解密,即判断所述第一哈希值和所述读取信息对应待读取数据的第二哈希值是否相同,若相同读取对应数据。当数据读取请求只包括读取信息,不包括请求密钥时,本发明实施例给出另一种数据读取方法,请参考图4,其为本发明实施例所提供的另一种数据读取方法的流程示意图,如图所示,该方法包括以下步骤:步骤s401,接收数据读取请求,所述数据读取请求包括读取信息。步骤s402,判断所述读取信息对应待读取数据的第二哈希值是否为空。步骤s403,若是,对所述待读取数据进行读取。需要说明的是,当数据读取请求中不包括请求密钥(即请求密钥为空)时,判断读取信息对应待读取数据的哈希值是否为空,若是,直接读取待读取数据。本发明实施例中,包括数据写入过程与数据读取两个过程,记录写入数据的哈希值后,对该写入数据进行加密存储,在数据读取过程,当读取请求秘钥的哈希值与待读取数据的哈希值相匹配时,才可读取对应数据,与现有技术相比,可以只保存写入数据的哈希值,无需保存其请求密钥,不同的数据可以使用不同的密钥,故可以在保证数据访问安全性的前提下,兼顾了数据访问速度。需要说明的是,本发明实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。需要说明的是,上述步骤的执行主体可以为数据写入装置或者数据读取装置,该装置可以位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(softwaredevelopmentkit,sdk)等功能单元,本发明实施例对此不进行特别限定。可以理解的是,所述应用可以是安装在终端上的应用程序(nativeapp),或者还可以是终端上的浏览器的一个网页程序(webapp),本发明实施例对此不进行限定。本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。请参考图5,其为本发明实施例所提供的一种数据写入装置的功能方块图。如图5所示,该装置包括:接收模块510,用于接收数据写入请求,所述数据写入请求包括写入数据和请求密钥;计算模块520,用于计算所述请求密钥的第一哈希值;第一写入模块530,用于当写入位置不存在所述写入数据时,记录所述第一哈希值,并基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:第二写入模块540,用于当所述写入位置存在所述写入数据时,判断所述第一哈希值与所述写入数据对应的第二哈希值是否相同;若是,基于所述请求密钥对所述写入数据进行加密后存储至所述写入位置。请参考图6,其为本发明实施例所提供的另一种数据写入装置的功能方块图。如图6所示,该装置包括:接收模块610,用于接收数据写入请求,所述数据写入请求包括写入数据;第一写入模块620,用于当写入位置不存在所述写入数据时,记录所述第一哈希值为空,并将所述写入数据存储至所述写入位置。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:第二写入模块630,用于当所述写入位置存在所述写入数据时,判断所述写入数据对应的第二哈希值是否为空;若是,将所述写入数据存储至所述写入位置。请参考图7,其为本发明实施例所提供的一种数据读取装置的功能方块图。如图7所示,该装置包括:接收模块710,用于接收数据读取请求,所述数据读取请求包括读取信息和请求密钥;计算模块720,用于计算所述请求密钥的第一哈希值;判断模块730,用于判断所述第一哈希值和所述读取信息对应待读取数据的第二哈希值是否相同;读取模块740,用于若是,基于所述请求密钥对所述待读取数据进行读取。请参考图8,其为本发明实施例所提供的另一种数据读取装置的功能方块图。如图8所示,该装置包括:接收模块810,用于接收数据读取请求,所述数据读取请求包括读取信息;判断模块820,用于判断所述读取信息对应待读取数据的第二哈希值是否为空;读取模块830,用于若是,对所述待读取数据进行读取。由于本实施例中的各模块能够执行图1至图4所示的方法,本实施例未详细描述的部分,可参考对图1至图4的相关说明。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1