1
F1024 2018-11-29 11:19:31 +08:00
菠菜网有随机数?活久见
|
2
SeaRecluse 2018-11-29 11:19:35 +08:00
张口就来,正则枚举
|
3
php01 2018-11-29 11:19:57 +08:00
1.大家都是人,有趋利避害的天性,所以追求公平与安全,可以推导出没人愿意相信一个没有公信力的开奖结果
2.事实上也是如此,大多数的菠菜项目的开奖结果,都是以一个公众能方便查询到的,且有公信力的,且与本菠菜平台没有利益相关的事物。例如私菜大多数是以福菜的开奖结果为结果,还有一些是以 QQ 的在线人数统计为开奖结果。 3.最重要的一点是共识,大家相信的且无异议的开奖,才是正常的,不然没人敢去玩。比如线下,那叫眼见为实,亲眼所见就在面前,线上,全世界人民都能查到某一期的某一次开奖,都没有差别。 |
4
ipoh 2018-11-29 11:23:05 +08:00
比特币的最新区块 hash
|
6
Cbdy 2018-11-29 12:49:14 +08:00 1
可以考虑用当前的上证指数、纳斯达克指数
|
7
yang3121099 2018-11-29 12:54:33 +08:00
@Cbdy 还有一些网站参考美元汇率,比特币汇率什么的
|
8
imn1 2018-11-29 13:05:23 +08:00
性感荷官在后面掷色子决定的
|
9
slimhigh 2018-11-29 13:28:46 +08:00 6
生成*真*随机数是很困难的一件事情。一般各种语言里面提供的 `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 13:40:45 +08:00
不都是用户和平台各自生成一个种子,然后将种子 hash 发送给对方,最后双方拿种子开奖的么。
|
11
lsido 2018-11-29 13:41:37 +08:00 via Android
所以你是说系统彩随机开号吗?
还能什么机制,就是你想的那种最简单的 |
12
php01 2018-11-29 15:19:30 +08:00
@zpxshl 目前的在线棋牌类游戏,也都是房卡游戏了,也就是说,是自己几个熟人之间去玩,相当于约好一起去麻将馆打牌,只是这个麻将馆是在线上。
|
13
jasonyang9 2018-11-29 15:29:04 +08:00
@slimhigh #9 rndg 服务就是做这个事情的,Hardware RNG Entropy Gatherer Daemon
|
18
petelin 2018-11-29 17:22:01 +08:00
可以这么解决, 用户上传一个种子, 然后菠菜拿一个私钥和一个数据(比如时间戳)对着个种子加密之后用一定的算法的出来一个数. 用户可以用公钥去验证这个数是不是这么开出来的.
区块链还是有价值的 |
19
phpcxy 2018-11-29 17:39:55 +08:00
在线纸牌发牌的随机算法呢?
|
20
ranleng 2018-11-29 20:17:04 +08:00
我记得原来有个菠菜网是给出算法,
每天给出两个种子, 第二天给出前一天的第三个种子, 然后用户可以按照算法+三个种子 推算所有游戏的结果, 感觉没什么漏洞, |