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

post featured image