1
F1024 2018 年 11 月 29 日
菠菜网有随机数?活久见
|
2
SeaRecluse 2018 年 11 月 29 日
张口就来,正则枚举
|
3
anteros 2018 年 11 月 29 日
1.大家都是人,有趋利避害的天性,所以追求公平与安全,可以推导出没人愿意相信一个没有公信力的开奖结果
2.事实上也是如此,大多数的菠菜项目的开奖结果,都是以一个公众能方便查询到的,且有公信力的,且与本菠菜平台没有利益相关的事物。例如私菜大多数是以福菜的开奖结果为结果,还有一些是以 QQ 的在线人数统计为开奖结果。 3.最重要的一点是共识,大家相信的且无异议的开奖,才是正常的,不然没人敢去玩。比如线下,那叫眼见为实,亲眼所见就在面前,线上,全世界人民都能查到某一期的某一次开奖,都没有差别。 |
4
ipoh 2018 年 11 月 29 日
比特币的最新区块 hash
|
6
Cbdy 2018 年 11 月 29 日 可以考虑用当前的上证指数、纳斯达克指数
|
7
yang3121099 2018 年 11 月 29 日
@Cbdy 还有一些网站参考美元汇率,比特币汇率什么的
|
8
imn1 2018 年 11 月 29 日
性感荷官在后面掷色子决定的
|
9
slimhigh 2018 年 11 月 29 日 生成*真*随机数是很困难的一件事情。一般各种语言里面提供的 `random()` 函数都是生成的伪随机数。`random()`的底层实现实际上是一个数学公式,例如,这个公式接收一系列初始值,然后根据这个初始值就可以生成一个数列,每次`random()`函数获取的随机数,不过是取这个数列中的一项。伪随机数的安全关键点在于,初始值的选择,一旦别人猜出你的初始值,就可以知道你后面要生成的所有伪随机数。
有很多人初始化随机数种子喜欢使用当前时间戳,但是要注意使用这种方式生成的随机数不能用于安全相关的场景,例如用它来生成每期的中奖号码。黑客可以根据的使用的编程语言,知晓伪随机数的公式,然后根据你大概的执行时间,来尝试初始化这个公式,根据历史号码对比,得出你使用的初始化时间戳,从而获得以后的中奖号码。 为了使伪随机数不可预测,选择合适的初始化参数至关重要,初始化参数要不可预测,也就是说要*真*随机。一般来说安全的方式是使用`/dev/random`( Linux 系统)设备产生的随机字节数据。`/dev/random`中的数据来源于计算机硬件设备的环境噪声,例如放大电路的热噪声,因此`/dev/random`中的数据非常非常难以预测,接近于*真*随机数,各种编程语言中大部分涉及加密的函数库,初始化参数都会用到`/dev/random`的数据。 不过`/dev/random`在虚拟机环境下可能不是十分安全,例如在 AWS、阿里云这种云平台场景下,所有的虚拟机设备都是虚拟化出来的,导致`/dev/random`的数据可能会被猜测出来。这中情况下需要考虑别的*真*随机数生成方式,例如专门的随机数生成硬件设备,或者使用像 random.org 这样的服务,random.org 的随机数据来自于地球的大气噪声。 |
10
widdy 2018 年 11 月 29 日
不都是用户和平台各自生成一个种子,然后将种子 hash 发送给对方,最后双方拿种子开奖的么。
|
11
lsido 2018 年 11 月 29 日 via Android
所以你是说系统彩随机开号吗?
还能什么机制,就是你想的那种最简单的 |
13
jasonyang9 2018 年 11 月 29 日
@slimhigh #9 rndg 服务就是做这个事情的,Hardware RNG Entropy Gatherer Daemon
|
18
petelin 2018 年 11 月 29 日
可以这么解决, 用户上传一个种子, 然后菠菜拿一个私钥和一个数据(比如时间戳)对着个种子加密之后用一定的算法的出来一个数. 用户可以用公钥去验证这个数是不是这么开出来的.
区块链还是有价值的 |
19
phpcxy 2018 年 11 月 29 日
在线纸牌发牌的随机算法呢?
|
20
ranleng 2018 年 11 月 29 日
我记得原来有个菠菜网是给出算法,
每天给出两个种子, 第二天给出前一天的第三个种子, 然后用户可以按照算法+三个种子 推算所有游戏的结果, 感觉没什么漏洞, |