0

ソルトが既にわかっている場合、ソルトハッシュでレインボーテーブルを使用する可能性はありますか? まず、そのハッシュの仕組みを紹介したいと思います。

これはそれぞれ、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";

あなたがこれらの声明で私を助けてくれれば、私は感謝します:)

4

0 に答える 0