首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

智能合约安全——随机数

本次我们将带大家了解智能合约中一个经常被用到的东西——随机数。智能合约的开发中常常会用到随机数,例如 Lottery 和现在流行的 NFT 数字藏品的属性等都需要用到随机数。...目前来说常见的随机数获取有两种:使用区块变量生成随机数,使用预言机来生成随机数。...2)使用预言机生成随机数预言机是专门为生成随机数种子而搭建的链上或者链下的服务。...当然这种方法也会有一些安全风险,例如依赖第三方给出的随机数种子的话同样会存在第三方作弊或者受贿的情形,即使是自己搭建的随机数服务也可能因为故障等原因无法使用,项目方也有可能操控随机数对 DApp 的运行和用户造成重大的损失...因此使用链下服务获取随机数的方法依赖于是否有一个可信又稳定的第三方服务,如果有,那么这个方法相较于使用区块链变量生成随机数的方法,随机数的不可预测性会更强一些。

57630
您找到你想要的搜索结果了吗?
是的
没有找到

mock.js生成随机数

如果需要模拟大量数据,json-server也有快速的方法 接下来我们做一个json-server官方的实例(生成1000组user数据) 还是在test文件夹下,新建data.js文件,写入官方例子:...mockjs官方例子 然后运行:json-server data.js -p 3000 成功后地址栏打开localhost:3000你就会发现有1000条user数据 是不是很厉害,很方便。但是!...在实际开发中,我们需要的是更加正常点的数据,比如username应该是“马云”,“马化腾”...而不是千篇一律的user1、user2...并且需要有图片等等数据,如果需要这样的数据,mock.js就太合适了...mockjs官网地址http://mockjs.com/建议先大略看下官方文档(要不然可能接下来的看不太懂) 首先安装mock.js:npm install mockjs --save 我们用mockjs...data.js代码 这段数据包含每条数据对应id、员工id(staff)、员工简介(evaluate)、员工部门(department)、随机1-3张照片 运行之后访问:http://localhost

8.5K20

js如何实现随机数切换

抽奖时,点击图片,实现图片的随机切换,数字的随机切换等,为了吸引用户的注意力,增加网页的互动性,这个效果是怎么实现的呢 01 具体示例 https://coder.itclan.cn/fontend/js...具体代码如下所示,当使用原生js方法能实现后,在用vue或等其他一些框架,在里面实现相同的效果,核心代码实现依旧是没有变的 ...text-align: center; } .text { font-size: 20px; font-weight: bold; } 重要的知识点 上面实现随机数的生成...,在一定的数值范围内生成随机数 定义一个random()函数,原理是随机数和最大值减最小值的差相乘,最后再加上最小值 其中Math.floor()浮点数向下取整 Math.floor(Math.random...() * (max - min)) + min 其他的,都是与原生js实现都是一样的,同样用的是定时器,加上一个开关去实现的

8K70

js如何实现随机数的切换

false 前言 在一些电商网站,或一些活动页上,看到一些特效,比如:抽奖时,点击图片,实现图片的随机切换,数字的随机切换等,为了吸引用户的注意力,增加网页的互动性,这个效果是怎么实现的呢 具体示例 随机数...具体代码如下所示,当使用原生js方法能实现后,在用vue或等其他一些框架,在里面实现相同的效果,核心代码实现依旧是没有变的 ...wrap{ text-align: center; } .text { font-size: 20px; font-weight: bold; } 重要知识点 面实现随机数的生成...,在一定的数值范围内生成随机数 定义一个random()函数,原理是随机数和最大值减最小值的差相乘,最后再加上最小值 其中Math.floor()浮点数向下取整 Math.floor(Math.random...() * (max - min)) + min 其他的,都是与原生js实现都是一样的,同样用的是定时器,加上一个开关去实现的

7.7K40

js随机数生成器的扩展

()*7)+1 //规则:整篇文章,唯一能用random的地方 } 1.扩展+分区 既然是扩展,那么我给小范围随机数生成器扩展个几倍,再截取目标随机数范围不就得了。...1.1 扩展 既然是小范围随机扩展到大范围,那么肯定离不开小范围随机数生成器get7的多次调用。...当然我们最终目标很明确,目标随机数生成器get11,它的每一个随机数都会等概率映射到get7的扩展序列里面: 然后我们很快就可以想到一个公式: a*(getx - 1) + getx a是个整数,整个公式含义是...get11():~~((n-1) / 4)+1 } 2.二进制法 对小随机数函数进行二进制划分,一半表示1一半表示0,然后用二进制表示大随机数,再去除多余的 get7到get11,8<11<16,我们取...我们知道等概率生成某个范围的随机数,想通过这个函数生成一个更小范围的随机数,就应该这样子:超过预期范围,重新抽取,所以叫做拒绝采样。

4.2K10

JS随机数历险重大发现

先说下随机数随机数这个真的很有用,哪怕有一天你离开学校,数学知识也还给了老师,它还是会潜移默化地深入你的生活。...例如玩小游戏抛硬币啊、买彩票,活动抽奖等,下面就让我们跟随作者的脚步一起复习下在Javascript中关于随机数的知识吧。 我个人认为,随机数拿来面试初试刷人是蛮好的。...下面我分别从“随机数”、“随机整数”、“随机字符串”以及如何实现一个随机数去带领大家了解随机数,也让大伙感受下我的脑洞,最后的话,我会分享一题大厂相关的面试题。...那么很容易联想到数组的下标对吧,而且我们JS贼牛逼,不仅可以数字,字符也可以啊对吧。低调一点,这边就数字吧,先创建一个数组,把楼上那句话拆好塞进去,随机数函数带进去就解决了嘛。...它的原题来自大搜车,大搜车是一家独角兽公司,其Node.js的氛围是极好的,毫不夸张地说,在杭州Node生态圈可以说是第二梯队的,他们厂在杭州无常,不过开发的话不在那个大厂房那里,在天蝎座啥楼那里,现在通地铁了

2.9K20

浅谈随机数与网络安全与熔岩灯

上周,阅读了我司入职的安全培训课程,其中提到的随机数部分内容,看完之后觉得很有意思,就又读了几篇相关文章,总结成本文,希望你也能喜欢!...时间戳真的那么安全吗?...对网络安全有兴趣的同学,可以在文末找到这次攻击的具体内容。由此可见,伪随机数有两个问题,一个是seed可能被人预测,而个是产生随机数的算法可能是脆弱而可预测。...网站不是一个伪劣网站,于是它产生了一个随机的pre-master secret,用来加密之后的连接 之后你的浏览器和网站的所有连接,都建立在这个pre-master secret,它必须是无法预测的,从而保证网络连接的安全...可见,程序员们为了能得到足够安全随机数,已经想破脑子了,下次使用随机数的时候,务必三思哦~ ---- Refs: https://blog.cloudflare.com/why-randomness-matters

80520

随机数:真随机数和伪随机数一样吗_rdrand真随机数

I.真随机数&伪随机数的基本定义 在这之前需要先明白一点:随机数都是由随机数生成器(Random Number Generator)生成的。...1.真随机数 TRUE Random Number 真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高...II.c语言中的伪随机数详解 既然我们已经了解了真伪随机数的概念,接下来就来探究一下离我们最近的伪随机数吧。 c语言中就存在一个随机函数:rand().它就是一个标准的伪随机数生成器。...那么,既然伪随机数生成那么简单,而且看上去确实是随机的,为什么人们还要大费周章的使用繁琐又高价的物理设备去获得随机数呢? 前面在伪随机数的定义里讲了,伪随机数其实是有周期的。 听起来很恐怖对不对?...它的作用就是将随机数可视化。下面分别放出真随机数和伪随机数的图像。 真随机数图像: 伪随机数图像: 很明显的可以看到,伪随机数的图像呈现出了某种规律。

3.4K50

前端安全JS代码安全,简单前端源码安全探讨!

前端源码安全今天思考下前端源码安全的东西,不讲前端安全的大课题,只是针对于源码部分。在我看来,源码安全有两点,一是防止抄袭,二是防止被攻击。...,其实,做一下js混淆加密,这一切就都不会发生了,可惜了,这么大的公司,不注重前端安全,得不偿失啊。...说了这么多,前端js代码混淆加密怎么做,推荐产品吧,国外有jscrmber,国内有jshaman!关于安全所有的用户输入都是不能相信的,如果后端的检查校验还做得不好,那就可能被攻破。...对单个js文件混淆加密就行了,不要压成一个文件,不要压成一个文件。重要的事情说两遍。js代码混淆效果怎么样?...总结1、前端安全需要重视,将来会越来越被重视,因为它真重要。2、不要进行多文件压缩,不要把html、css、js压到一起,很不明智的做法。3、前端安全,就是js代码安全,对js做混淆加密是正道!

19550

还在用 Random生成随机数了?试试 ThreadLocalRandom 安全还好用!

背景 ThreadLocalRandom Unsafe 疑问 小结 前言 最近在写一些业务代码时遇到一个需要产生随机数的场景,这时自然想到 jdk 包里的 Random 类。...不安全性 作为 Unsafe 类内的方法,它也透露着一股 “Unsafe” 的气息,具体表现就是可以直接操作内存,而不做任何安全校验,如果有问题,则会在运行时抛出 Fatal Error,导致整个虚拟机的退出...而 set 方法也是比较安全的,它把某个内存位置之后的四个字节覆盖成一个 long 型的值,也几乎不会出错。 那么这两个方法”不安全”在哪呢?...它们的不安全并不是在这两个方法执行期间报错,而是未经保护地改变内存,会引起别的方法在使用这一段内存时报错。...在多线程下存在竞争种子原子变量更新操作失败后自旋等待的缺点,从而引出 ThreadLocalRandom 类,ThreadLocalRandom 使用 ThreadLocal 的原理,让每个线程内持有一个本地的种子变量,该种子变量只有在使用随机数时候才会被初始化

39410

深入理解PHP中mt_rand()随机数安全

前言 在前段时间挖了不少跟mt_rand()相关的安全漏洞,基本上都是错误理解随机数用法导致的。...很多国内开发者估计都是看的中文版的介绍而在程序中使用了mt_rand()来生成安全令牌、核心加解密key等等导致严重的安全问题。...伪随机数 mt_rand()并不是一个 真·随机数 生成函数,实际上绝大多数编程语言中的随机数函数生成的都都是伪随机数。...安全问题 说了这么多,那到底随机数怎么不安全了呢?其实函数本身没有问题,官方也明确提示了生成的随机数不应用于安全加密用途(虽然中文版本manual没写)。...常见的随机数用于安全验证的比如找回密码校验值,比如加密key等等。

82720
领券