66hash-什么是hash算法
详细解答66hash上的公平hash算法
一、公平算法
Hash 算法是一种无法逆向计算的算法,我们基于Hash算法来保证游戏绝对公平,详细原理如下:
服务器种子会在每一轮开始前随机生成,并且把种子的Hash 提供出来,以保证我们无法在游戏过程中更改结果
您也需要提供一个用户种子,每局游戏开始前您可以任意修改用户种子,以保证我们无法提前知道结果
确认开始游戏时,我们对服务器种子和用户种子共同计算Hash,以得到结果种子Hash
结果种子Hash = sha256( 用户种子 + 服务器种子)
取结果种子前6位,将这6位转换成16进制的数,用生成的16进制数除以6位 f 的16进制数,得到最终的 Number
Number = 结果hash前6位/ ffffff = 0-1的随机数
由此计算的 Number 是在 0-1 范围内完全随机分布的。
二、举例
您的服务器种子为 ETLGBOVHC48UODDJ ;
用户种子为 orwdcqg90oo8wuhg ;
结果种子为 orwdcqg90oo8wuhgETLGBOVHC48UODDJ
结果种子Hash = sha256 ( orwdcqg90oo8wuhgETLGBOVHC48UODDJ )
= 3526308699a3e0ef08d55693dfa991f74af43c68664d594e9e7e37d88a7bbc5f
Number = 352630(16进制)/ ffffff(16进制) = 3483184(10进制)/ 16777215(10进制) = 0.2076
转载请注明出处
原文链接: /posts/66hash-shen-me-shi-hash-suan-fa