我想问一下,如果我们已经知道盐,有没有机会在盐渍哈希上使用彩虹表。首先,我想介绍哈希的系统。
每个都是使用3个不同输入的SHA-256哈希计算的。 首先,是服务器种子。这是过去某个时间生成的预先计算的值。种子是在链中生成的,这样今天的种子就是明天种子的哈希。
种子0 =>种子1 =>种子2 =>种子3
接下来,使用纽约彩票的Take 5游戏的结果对服务器种子进行腌制(加扰)。每天美国东部时间晚上11:21绘制,这些结果(0填充)将附加到服务器种子,以便在第二天使用。
最后,每个卷都用唯一的圆形ID加盐,确保每卷都有不同的散列。
使用SHA256生成圆形散列(“serverseed-lottery-roundid”)。获取结果哈希的前8个十六进制数字并转换为十进制产生一个0-4294967295之间的整数。取模15得到的最终滚动范围为0-14。
我按时间顺序添加了几个这些种子和盐的例子: 种子:
1#08659e6ef7759d68c4a4d8b214217394c5f2b1a539cc51cc5f89be1f55ab737b
2#6d7ef31d654c30b2113019de67b0bc5bd400c41fc1d916937f2aee378772480c
3#37e9469b09afca5a985170684d18ece4e881bea5d5f22af8df1049129351b976
盐:
1#0406161724
2#1020273438
3#0111293436
种子数量是指盐的数量,1#从2016年1月19日开始
最后,这是一些带有这些输入的php实现。
$ seed =“39b7d32fcb743c244c569a56d6de4dc27577d6277d6cf155bdcba6d05befcb34”;
$ salt =“0422262831”;
$ round_id =“1”;
$ hash = hash(“sha256”,$ seed。“ - ”。$ salt。“ - ”。$ round_id);
$ roll = hexdec(substr($ hash,0,8))%15;
echo“Round $ round_id = $ roll”;
如果你帮我解释这些陈述,我将不胜感激:)