根据此代码的不同结果知道$server_seed
值是否可行?
$server_seed = "**4799e37e2f397e6196813367a11042335521f8d2**"; (unknown value)
$round_id = 73904; (known value);
$round_date = "2016-01-23-11-59-37"; (known value)
$hash = hash("sha256", $server_seed . "-" . $round_id . "-" . $round_date);
$roll = bcmod(hexdec(substr($hash, 0, 8)), 15);
echo $roll;
每次$round_id
增加1并且$round_date
增加45秒时,代码会给出 0 和 14 之间的值。我可以获得大量不同的结果,我知道他们的$round_id
和$round_date
,但$server_seed
是未知的(总是相同的长度)。
我的问题是,是否有一种方法可以使用不同的结果来了解$server_seed
值,例如创建一个检查不同$server_seeds
值的代码,并告诉您哪些值会为您提供插入的结果
无论如何以简单明了的方式获得$server_seed
值?
答案 0 :(得分:1)
没有简单的方法。 Sha256
是加密哈希函数,完全满足此函数的definition:
加密散列函数是考虑的散列函数 几乎不可能倒置。
目前在SHA-2
上未报告任何成功的攻击正如另一个答案所指出的那样,只有暴力攻击才有可能在现有计算技术和硬件的当前状态下执行是不可行的。
答案 1 :(得分:0)
没有简单的方法。字典或暴力。