如果我们已经知道盐,我想问是否有机会在盐渍哈希上使用彩虹表。首先,我想介绍一下哈希系统。
每一个都是使用 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";
$盐=“0422262831”;
$round_id = "1";
$hash = hash("sha256",$seed."-".$salt."-".$round_id);
$roll = hexdec(substr($hash,0,8)) % 15;
echo "回合 $round_id = $roll";
如果您能帮助我完成这些声明,我将不胜感激 :)