根據此代碼的不同結果知道$server_seed
值是否可行?sha256基於不同的結果
$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秒時間和的值。我可以獲得大量不同的結果,我知道他們的$round_id
和$round_date
,但$server_seed
是未知的(總是相同的長度)。
我的問題是,是否有辦法通過不同的結果知道$server_seed
的值,比如製作一個代碼來檢查不同的值,並告訴你什麼值會給你插入的結果。
有沒有辦法以簡單方式獲得$server_seed
值?
有幾個加密函數已經得到很好的證明,如'HMAC','PBKDF2'和'crypt'。使用經過良好審查的密碼功能總是比編寫自己的密碼功能更可取。 [「Schneier法則」](https://www.schneier.com/blog/archives/2011/04/schneiers_law.html):從最無知的業餘愛好者到最好的密碼學家,任何人都可以創建一種算法,他自己可以不會中斷。 – zaph