[发明专利]一种获取随机数、生成随机数的方法、设备及介质在审
申请号: | 202010517185.9 | 申请日: | 2020-06-09 |
公开(公告)号: | CN111930343A | 公开(公告)日: | 2020-11-13 |
发明(设计)人: | 张岚;肖雪;王伟兵;李照川;董晨晨;孙源 | 申请(专利权)人: | 山东浪潮质量链科技有限公司 |
主分类号: | G06F7/58 | 分类号: | G06F7/58;G06F21/64;G06Q20/38 |
代理公司: | 北京君慧知识产权代理事务所(普通合伙) 11716 | 代理人: | 董延丽 |
地址: | 250102 山东省济南市历城区唐冶西*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 随机数 生成 方法 设备 介质 | ||
本申请实施例公开了一种获取随机数、生成随机数的方法、设备及介质,包括:当各节点需要随机数时,调用随机数链码中的获取随机数方法,将时间戳与交易ID输入至所述随机数链码,输出预设位数的数字;将所述预设位数的数字作为预先存储的随机数库中随机数对应的序号;在所述随机数库中确定出所述序号对应的第一随机数,并将所述第一随机数发送至各节点。本申请实施例通过时间戳与交易ID,在预先存储的随机数库中确定出对应的随机数,并将随机数发送至各节点。由于时间戳与交易ID的唯一性,使得各节点获取的随机数也是相同的,可以保证写链操作成功。
技术领域
本申请涉及计算机技术领域,尤其涉及一种获取随机数、生成随机数的方法、设备及介质。
背景技术
随机数是以现代密码学为基础的信息安全系统的基石。随机数在基于区块链的交易中有着广泛的应用。
在现有技术中,各个节点获取随机数时,由于每个节点在执行链码代码时获取的随机数是不同的,导致了链码运行的结果可能不一致,因此写链操作会失败。
发明内容
有鉴于此,本申请实施例提供了一种获取随机数、生成随机数的方法、设备及介质,用于解决现有技术中各节点获取的随机数可能存在不同,导致写链操作失败的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种获取随机数的方法,所述方法包括:
当各节点需要随机数时,调用随机数链码中的获取随机数方法,将时间戳与交易ID输入至所述随机数链码,输出预设位数的数字;
将所述预设位数的数字作为预先存储的随机数库中随机数对应的序号;
在所述随机数库中确定出所述序号对应的第一随机数,并将所述第一随机数发送至各节点。
进一步的,所述将时间戳与交易ID输入至所述随机数链码,输出预设位数的数字,具体包括:
将时间戳与交易ID输入至所述随机数链码,以便所述随机数链码将输入的时间戳与交易ID进行拼接,将拼接后的时间戳与交易ID进行哈希计算,得到第一哈希值;将所述第一哈希值经过处理,输出为预设位数的数字。
进一步的,所述随机数链码将输入的时间戳与交易ID进行拼接,将拼接后的时间戳与交易ID进行哈希计算,得到第一哈希值;将所述第一哈希值经过处理,输出为预设位数的数字,具体包括:
所述随机数链码将输入的时间戳与交易ID进行拼接,将拼接后的时间戳与交易ID进行哈希计算,得到16进制的第一哈希值;截取所述第一哈希值的后五位,将截取后的所述第一哈希值转化为10进制的数字,并除以10000进行取余数操作,再将所述余数加1,得到所述预设位数的数字。
进一步的,所述交易ID为交易发起节点的身份信息与第二随机数进行哈希计算得到的第二哈希值,其中,所述第二随机数通过随机数生成器生成。
本申请实施例还提供一种生成随机数的方法,其特征在于,所述方法包括:
在预设周期内,调用随机数链码中的写入随机数方法,将时间戳与交易ID输入至所述随机数链码,生成多个随机数,并对每个随机数标记对应的序号;
将多个随机数与每个随机数对应的序号存储于随机数库。
进一步的,所述对每个随机数标记对应的序号之前,所述方法还包括:
设置所述序号数量,当生成的随机数超出所述序号数量时,由第一个序号标记随机数。
进一步的,所述将时间戳与交易ID输入至所述随机数链码,生成多个随机数,具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮质量链科技有限公司,未经山东浪潮质量链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010517185.9/2.html,转载请声明来源钻瓜专利网。