> 文档中心 > 幸运哈希dapp游戏系统开发玩法分析

幸运哈希dapp游戏系统开发玩法分析

Hash,一般翻译做散列,也有直接音译为哈希,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。

  这种转换是一种压缩映射,幸运哈希游戏dapp项目开发,欢迎随时打扰小编,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。

1)什么是哈希运算

  哈希算法(Hash Algorithm)即散列算法的直接音译。

  它的基本功能概括来说,就是把任意长度的输入(例如文本等信息)通过一定的计算,生成一个固定长度的字符串,输出的字符串称为该输入的哈希值。

  2)哈希运算的特性

  一个优秀的哈希算法要具备正向快速、输入敏感、逆向困难、强抗碰撞等特征。

  正向快速:

  正向即由输入计算输出的过程,对给定数据,可以在极短时间内快速得到哈希值。如当前常用的SHA256算法在普通计算机上一秒钟能做2000万次哈希运算。

输入敏感:

  输入信息发生任何微小变化,哪怕仅仅是一个字符的更改,重新生成的哈希值与原哈希值也会有天壤之别。

  同时完全无法通过对比新旧哈希值的差异推测数据内容发生了什么变化。

  因此,通过哈希值可以很容易地验证两个文件内容是否相同。

  该特性广泛应用于错误校验。

  在网络传输中,发送方在发送数据的同时,发送该内容的哈希值。

  接收方收到数据后,只需要将数据再次进行哈希运算,对比输出与接收的哈希值,就可以判断数据是否损坏。

逆向困难:

  要求无法在较短时间内根据哈希值计算出原始输入信息。

  该特性是哈希算法安全性的基础,也因此是现代密码学的重要组成。

  哈希算法在密码学中的应用很多,此处仅以哈希密码举例进行说明。

  当前生活离不开各种账户和密码,但并不是每个人都有为每个账户单独设置密码的好习惯,为了记忆方便,很多人的多个账户均采用同一套密码。

  如果这些密码原封不动地保存在数据库中,一旦数据泄露,则该用户所有其他账户的密码都可能暴露,造成极大风险。

  所以在后台数据库仅会保存密码的哈希值,每次登录时,计算用户输入的密码的哈希值,并将计算得到的哈希值与数据库中保存的哈希值进行比对。

  由于相同输入在哈希算法固定时,一定会得到相同的哈希值,因此只要用户输入密码的哈希值能通过校验,用户密码即得到了校验。

  在这种方案下,即使数据泄露,黑客也无法根据密码的哈希值得到密码原文,从而保证了密码的安全性。