ソルトが既にわかっている場合、ソルトハッシュでレインボーテーブルを使用する可能性はありますか? まず、そのハッシュの仕組みを紹介したいと思います。
これはそれぞれ、3 つの異なる入力の SHA-256 ハッシュを使用して計算されます。まず、サーバーシードです。これは、過去のある時点で生成された事前計算値です。シードは、今日のシードが明日のシードのハッシュになるようにチェーンで生成されます。
シード 0 => シード 1 => シード 2 => シード 3
次に、サーバー シードは、ニューヨークの宝くじの 5 勝目の結果でソルト (スクランブル) されます。毎日東部標準時午後 11 時 21 分に抽出されたこれらの結果 (0 で埋められたもの) は、翌日使用するためにサーバー シードに追加されます。
最後に、各ロールは一意のラウンド ID でソルトされ、ロールごとに異なるハッシュが保証されます。
ラウンドのハッシュは SHA256("serverseed-lottery-roundid") を使用して生成されます。結果のハッシュの最初の 8 桁の 16 進数を取得して 10 進数に変換すると、0 ~ 4294967295 の整数が得られます。モジュロ 15 を取ると、範囲 0 ~ 14 の最終ロールが得られます。
そして、これらの種子と塩の例を時系列でいくつか追加します。
1 # 08659e6ef7759d68c4a4d8b214217394c5f2b1a539cc51cc5f89be1f55ab737b
2# 6d7ef31d654c30b2113019de67b0bc5bd400c41fc1d916937f2aee378772480c
3# 37e9469b09afca5a985170684d18ece4e881bea5d5f22af8df1049129351b976
塩:
1# 0406161724
2# 1020273438
3# 0111293436
種子の数は塩の数を指し、1# は 19.01.2016 から始まります
最後に、これはこれらの入力を使用した PHP の実装です。
$シード = "39b7d32fcb743c244c569a56d6de4dc27577d6277d6cf155bdcba6d05befcb34";
$ソルト = "0422262831";
$round_id = "1";
$hash = hash("sha256",$seed."-".$salt."-".$round_id);
$roll = hexdec(substr($hash,0,8)) % 15;
echo "ラウンド $round_id = $roll";
あなたがこれらの声明で私を助けてくれれば、私は感謝します:)