You are here

MD5ハッシュ検証システム

雀魂は完全ランダムでの対局の生成を保証します。
対局開始時にはすでに牌山の牌順が固定されており、対局状況に応じて牌山や配牌が変更されることはありません。
この声明を証明するために、雀魂ではMD5ハッシュ検証システムを導入しています。

MD5は、公用の標準的なアルゴリズムで、暗号化や復号化に広く用いられています。一定なアルゴリズムを通して、入力されたデータ(牌山の牌順)をハッシュ値に変換します。MD5には以下の特徴を兼ね備えています。
生成されたMD5ハッシュで元の入力内容を解析することは出来ません。対局開始時に与えられたMD5ハッシュが解析され事前に牌山が解析されることはありません。
一つの入力内容に対し、生成されるMD5ハッシュはーつのみとなります。また、牌山の牌順は少しでも異なれば、生成されるMD5ハッシュは全く異なります。
上記により、牌山が改ざんされることはないということを保証します。

【MD5ハッシュ検証ステップ】
1.対局中、プレイヤーは画面左上の四角の枠内に表示されるドラ表示牌をクリックすると、その対局の牌山が生成したMD5ハッシュを確認できます。MD5ハッシュは配牌するごとに生成されます。
2.対局終了後、プレイヤーは「牌譜」内で対局中のものと同じかどうかを局単位で参照することができます。これにより対局中に与えられたMD5ハッシュが間違っていなかったかを検証します。
3.慣例的な呼び名を参考に、牌は全て符号化されています。それぞれ萬字はm、筒子はp、索子はs、字牌はzを使って表されます。
したがって、一萬は1m、九筒は9p、五索は5sとなります。東南西北白發中はそれぞれ1z、2z、3z、4z、5z、6z、7zとなります。特殊な牌である赤の五萬は0m、赤の五筒はOp、赤の五索は0sと表されます。これにより、文字列を用いて牌山の牌順を表すことできます、これが「牌山コード」といいます。仮に牌山の牌順が八筒・七索・東風・赤五萬だった場合、文字列で表すと8p7s1z0mとなります。
4.任意のMD5ハッシュ計算ツールを使用し、そのツールに「牌山コード」を入力してバイト長は16Byte、全部で32文字のハッシュ値になるよう変換(ハッシュ化)してください。変換後、表示されたMD5ハッシュと対局中に記録したMD5ハッシュが同じであるかを確認してください。同じであれば、対局が進行していたとき牌山の牌順は固定されており、後から改ざんされたものではないと証明することができます。一打でも改ざんされていれば、牌譜での配牌が異なったり、あるいはMD5ハッシュが、合わなくなるからです。

※「牌山コード」は、牌譜画面「山」を下にスクロールすることでご覧いただけます。
「雀魂」をいつも応援していただきましてありがとうございます。プレイヤーの皆様が「雀魂」を通して麻雀を楽しみながら、ますます上達なさいますよう願っております。