掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链定位获取随机数的方法

文献发布时间:2023-06-19 12:24:27


一种基于区块链定位获取随机数的方法

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于区块链定位获取随机数的方法。

背景技术

区块链哈希值是区块链记录数据的一种基本形式,它是一种密码算法HA256;哈希算法是一种非对称的加密算法,所谓非对称性:由明文加密容易得到密文,但由密文很难通过该算法得到明文;以哈希算法HA256为例,加密成的密文一共有2

哈希值是由1、0和字母符号组成的256位的二进制字符串,通常显示出的是十六进制的64位字符串;不论是二进制字符串或者十六进制的字符串,其中均包含了大量数据,通过适当变换,可以作为某些问题的数据产生源。

随机数的生成涉及到电子通讯和网络技术的方方面面,生成的随机数是否足够随机和安全,直接涉及到广大用户的利益问题;目前存在的随机数的生成主要是靠伪随机数生成器来完成的;伪随机数生成器生成随机数的原理为:获取设备的某些参数,再根据数学算法得出随机数;采用该种方法生成的随机数有可能被人为的控制和被黑客获得设备的系统参数,从而掌控随机数生成的规律。

发明内容

为克服以上技术中存在的问题,本发明提供一种基于区块链定位获取随机数的方法,该方法包括:

首先,确定需要生成随机数的位数n;

使用者进入区块链,获取区块链中n个区块的哈希值h

将n个区块的哈希值整数化成二进制数,再将二进制数转化成十进制数;

定位n个十进制数中一个相同位数的数字,抽取每个十进制数中被定位的数字,按照顺序组成随机数;

所述确定需要生成随机数的位数n为:随机数是十进制数时的位数;

所述获取区块链中n个区块的哈希值h

所述将n个区块的哈希值整数化成二进制数的方法为:可以是任意一种将哈希值整数化为二进制数的方法,将哈希值转化成只有1和0组成的二进制数。

所述将二进制数转化成十进制数的方法为:将由1和0组成的二进制数通过公式:Α=a*2

所述定位n个十进制数中一个相同位数的数字的方法为:确定所得n个十进制数中的最低数位的位数为d,定位各十进制数中不大于d的相同位数的数字;

所述按照顺序组成随机数的方法为:对十进制数进行编号,编号对应转化成十进制数的哈希值的编号1、2、3…n;编号为1的十进制数所定位的数字作为随机数的个位数字,编号为2的十进制数所定位的数字作为随机数的十位数字,依照这种规则,直到编号为n的十进制数所定位的数字作为随机数的第n位数字。

所述获取区块链中n个区块的哈希值,还包括:随机选取区块链中的n个区块的方法为:使用者进入区块链的一个区块,以该区块为起点,依次向父区块方向再选取n-1个区块,提取它们的哈希值。

所述将n个区块的哈希值整数化成二进制数的方法为:将哈希值h

所述定位n个十进制数中一个相同位数的数字的方法,还包括:自动读取所得的n个十进制数的位数,确认它们中最小的数拥有的位数d;定位n个十进制数中不大于d的相同位数的数字。

所述抽取每个十进制数中被定位的数字,按照顺序组成随机数的方法还包括:从编号1、2、3…n的两头抽取被定位的数字;从编号为1进行抽取,则抽取编号1定位的数作为随机数的个位数字,编号2定位的数作为随机数的十位数字,依照这种规则,最终得到所需的随机数。

本发明的有益效果是:

本发明提供了一种基于区块链定位获取随机数的方法,该方法通过随机选择区块链区块哈希值为数据的产生源,使得采集的数据绝对安全,且避免了人为干扰;同时本发明提供了一种定位获取随机数的算法;通过该方法获得的随机数更加随机、安全。

附图说明

图1:基于区块链定位获取随机数的方法流程图;

图2:定位获取随机数的模拟图。

具体实施方式

以下结合附图对本发明的具体实施例进行详细说明。应该理解的是此处所给出的具体实施例仅用于说明和解释本发明,并不能用来限制本发明。

如图1所示:为本发明的基于区块链定位获取随机数的方法流程图;该流程图包括如下步骤:步骤S100,首先,确定需要生成随机数的位数n;步骤S101,使用者进入区块链,获取区块链中n个区块的哈希值h

具体地,该方法可以设置一个脚本,该脚本可以写入区块链的一段代码;该区块链可以是私有链、联盟链和公有链的任何一种。

在上述实施例中,步骤S100,所述确定需要生成随机数的位数n;具体地,根据场景和业务确定需要生成随机数的位数n;假如,需要生成我们经常用到的手机号验证码,一般验证码的位数为6位,则选取的生成随机数的n值为6。也就是说,根据场景和业务,需要生成几位数的随机数,在使用该程序时,n值就等于几。

步骤S101,所述获取区块链中n个区块的哈希值h

优选地,对哈希值进行指向父区块方向的顺序,依次排序为h

步骤S102,所述将n个区块的哈希值整数化成二进制数,具体地,可以是任意一种将哈希值整数化的方法。

优选地,将所得到的n个哈希值h

所述将二进制数转化成十进制数,具体地,将n个只有1和0组成的二进制数通过公式:Α=a*2

步骤S103,所述定位n个十进制数中一个相同位数的数字,具体地,自动比较步骤S102所得的n个十进制数的大小,获得十进制数最小的那个数的位数;假设最小位数为k,则定位的n个十进制数中相同位数不得高于k。

所述抽取每个十进制数中被定位的数字,按照顺序组成随机数;优选地,所得到的十进制数获得原有哈希值一致的编号1、2、3…n,编号为1的十进制数抽取的定位数字作为所求随机数的个位数字,编号为2的十进制数抽取的定位数字作为所求随机数的十位数字,依照此顺序,直到编号为n的十进制数抽取的定位数字为随机数的最高位数字;这样便得到我们所需要的随机数。

如图2所示:为定位获取随机数的模拟图;该图中H

将上述哈希值转化为仅有1和0二进制数得:c

将上述二进制数通过公式:Α=a*2

最后定位十进制数A

相关技术
  • 一种基于区块链定位获取随机数的方法
  • 一种基于区块链的定量获取随机数的方法
技术分类

06120113284369