基于HDFS文件系统的随机数密钥的存储与获取方法与流程

文档序号:13810348阅读:416来源:国知局

本发明涉及密钥存储技术领域,特别涉及一种基于hdfs文件系统的随机数密钥的存储与获取方法。



背景技术:

随着互联网的大范围普及,人类之间的信息传递达到了前所未有的数量和频率,各种隐私信息越来越多地暴露在互联网上,因此,人类对保密通信的需求也到了前所未有的高度,目前,数据信息采用随机数密钥加密是最常规保证通信安全的手段,所以对随机数密钥的需求量是很大的,在大量随机数密钥存储方面就存在着许多问题。一般而言,随机数密钥是被拆分成固定长度的大小,存储在传统数据库中,获取随机数密钥时,在传统数据库里获取指定个数的密钥。但这种存储方式存在的问题是:密钥的长度被固定,需要把整个固定长度的密钥获取完,才能补充新的随机数密钥,这样就导致了实时存储密钥的数量受到限制,无法存储tb级别的随机数密钥数量;另外,在密钥获取时直接从数据库获取,其获取的响应时间较慢。



技术实现要素:

本发明目的在于提供一种基于hdfs文件系统的随机数密钥的存储与获取方法,以解决现有技术中密钥存储中的密钥的长度被固定,需要把整个固定长度的密钥获取完,才能补充新的随机数密钥,导致实时存储密钥的数量受到限制,无法存储tb级别的随机数密钥数量;以及在密钥获取时直接从数据库获取,其获取的响应时间较慢的技术性缺陷。

本发明的技术方案是这样实现的:

一种基于hdfs文件系统的随机数密钥的存储与获取方法,包括可产生随机数的随机数发生器、写入缓存模块、hdfs分布式文件系统、文件名索引数据库、读取缓存模块以及获取任意长度随机数节点,所述随机数发生器依次连接写入缓存模块、hdfs分布式文件系统、文件名索引数据库,所述文件名索引数据库分别连接写入缓存模块与读取缓存模块,所述获取随机数节点连接读取缓存模块,所述存储与分发包括以下步骤:

随机数存储

a)随机数发生器产生随机数,该些随机数写入到固定大小的写入缓存模块中;

b)当写入的随机数到达一定的阈值m大小时,写入到hdfs文件系统并以文件块的形式进行存储;

c)对写入随机数的文件块进行保存,同时将该文件块对应的文件名保存在文件名索引数据库中;

获取随机数

d)获取随机数节点从读取缓存模块中获取指定长度的随机数;

e)如果读取缓存模块为空或者长度小于一定阈值m,则从文件名索引数据库中选出一条,根据对应文件名,从hdfs分布式文件系统中读出一个文件块到读取缓存模块中;

f)在读取缓存模块设置有一个指针,每次要获取多少长度的密钥,就将该指针移动相应位数;

g)读取缓存模块大小为可容纳若干文件块,文件块之间设置有临界区,当指针移动跨越n个文件块的临界区时,就证明n个文件块中的所有密钥已经被获取完,则在文件名索引数据库中删除该n个文件块的文件名记录,并从文件名索引数据库中取出一条文件记录,从hdfs分布式文件系统中获取一个新的文件块到读取缓存模块中;

h)hdfs分布式文件系统中被读取出的文件块位置通过写入缓存模块内的随机数补充,进而写入缓存模块内的空余位置通过随机数发生器产生随机数补充。

优选地,所述获取随机数节点每次要获取的随机数小于或等于n个文件块内所存储的随机数。

优选地,所述读取缓存模块大小只容纳两个文件块,当指针移动跨越两个文件块的临界区时,就证明一个文件块中的所有随机数已经被获取完。

优选地,步骤g)中,若指针移动没有跨越文件块的临界区时,就证明一个文件块中的密钥没被获取完,则不需要从hdfs分布式文件系统中获取一个新的文件块到读取缓存模块中。

与现有技术相比,本发明有以下有益效果:

本发明的基于hdfs文件系统的随机数密钥的存储与获取方法,通过将随机数序列分为小的文件块,并将该些文件块从写入缓存模块存入hdfs分布式文件系统以及通过读取缓存模块获取随机数序列,在写入缓存模块可实时的进行随机数序列补充,摒弃了对hdfs分布式文件系统进行频繁写入的方式,在整体的时域内提高了系统的存储能力,同时,外界获取随机数密钥只需从读取缓存模块中获取即可,从读取缓存模块获取密钥的响应时间极短,仅为hdfs分布式文件系统以及传统的数据库的百分之一至千分之一,很大程度上提高了密钥获取的效率。

附图说明

图1为本发明基于hdfs文件系统的随机数密钥的存储与获取方法的原理图。

图中:随机数发生器100、写入缓存模块200、hdfs分布式文件系统300、文件名索引数据库400、读取缓存模块500、获取任意长度随机数节点600。

具体实施方式

下面将结合本发明实施例中的附图,对本发明进行清楚、完整地描述。

如图1所示,一种基于hdfs文件系统的随机数密钥的存储与获取方法,包括可产生随机数的随机数发生器100、写入缓存模块200、hdfs分布式文件系统300、文件名索引数据库400、读取缓存模块500以及获取任意长度随机数节点600,所述随机数发生器100依次连接写入缓存模块200、hdfs分布式文件系统300、文件名索引数据库400,所述文件名索引数据库400分别连接写入缓存模块200与读取缓存模块500,所述获取随机数节点600连接读取缓存模块500,其中,运行在hdfs分布式文件系统300上的应用具有很大的数据集,系统上的一个典型文件大小一般都在g字节至t字节。因此,hdfs被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点来支持文件块。一个单一的hdfs实例能支撑数以千万计的文件块。所述存储与分发包括以下步骤:

随机数存储

a)随机数发生器产生随机数,该些随机数写入到固定大小的写入缓存模块中;

b)当写入的随机数到达一定的阈值m大小时,写入到hdfs文件系统并以文件块的形式进行存储,该些文件块的大小一般需要由获取随机数节点决定,需要获取的随机数密钥长度一般要小于一至两个文件块的大小;

c)对写入随机数的文件块进行保存,同时将该文件块对应的文件名保存在文件名索引数据库中,随机数密钥采用文件块的形式存储在hdfs文件系统中,可有效的降低了文件名字节数,为文件名索引数据库节省了大量的存储空间;

获取随机数

d)获取随机数节点从读取缓存模块中获取指定长度的随机数;

e)如果读取缓存模块为空或者长度小于一定阈值m,则从文件名索引数据库中选出一条,根据对应文件名,从hdfs分布式文件系统中读出一个文件块到读取缓存模块中,读取缓存模块可实时的补充内部的随机数密钥,其补充随机数密钥所需的响应时间不影响获取随机数节点从读取缓存模块获取密钥的时间;

f)在读取缓存模块设置有一个指针,每次要获取多少长度的密钥,就将该指针移动相应位数,该指针起到了书签的作用;

g)读取缓存模块大小为可容纳若干文件块,文件块之间设置有临界区,当指针移动跨越n个文件块的临界区时,就证明n个文件块中的所有密钥已经被获取完,则在文件名索引数据库中删除该n个文件块的文件名记录,并从文件名索引数据库中取出一条文件记录,从hdfs分布式文件系统中获取一个新的文件块到读取缓存模块中;

h)hdfs分布式文件系统中被读取出的文件块位置通过写入缓存模块内的随机数补充,进而写入缓存模块内的空余位置通过随机数发生器产生随机数补充。

所述获取随机数节点每次要获取的随机数小于或等于n个文件块内所存储的随机数,保证了获取随机数节点能一次性获取足够多的随机数密钥,避免了多次获取影响效率。

所述读取缓存模块大小只容纳两个文件块,当指针移动跨越两个文件块的临界区时,就证明一个文件块中的所有随机数已经被获取完。

步骤g)中,若指针移动没有跨越文件块的临界区时,就证明一个文件块中的密钥没被获取完,则不需要从hdfs分布式文件系统中获取一个新的文件块到读取缓存模块中。

综合本发明的原理可知,本发明的基于hdfs文件系统的随机数密钥的存储与获取方法,通过将随机数序列分为小的文件块,并将该些文件块从写入缓存模块存入hdfs分布式文件系统以及通过读取缓存模块获取随机数序列,在写入缓存模块可实时的进行随机数序列补充,摒弃了对hdfs分布式文件系统进行频繁写入的方式,在整体的时域内提高了系统的存储能力,同时,外界获取随机数密钥只需从读取缓存模块中获取即可,从读取缓存模块获取密钥的响应时间极短,仅为hdfs分布式文件系统以及传统的数据库的百分之一至千分之一,很大程度上提高了密钥获取的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1