前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MASS哈希游戏竞猜系统开发模式(逻辑部署)

MASS哈希游戏竞猜系统开发模式(逻辑部署)

原创
作者头像
开发weixin-XTKF556
发布2022-06-21 09:39:05
6460
发布2022-06-21 09:39:05
举报
文章被收录于专栏:程序员11程序员11

哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息,通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。

  hash优点展示

  如果两个哈希值是不相同的(根据同一函数),哈希開发V+(Whi366) 那么这两个散列值的原始输入一定是不相同的。

  如果两个哈希值相同,两个输入值很可能(极大概率)是相同的,但也可能不同,这种情况称为“哈希碰撞”

  抗篡改能力:对于一个数据块,哪怕只改动其一个比特位,其hash值的改动也会非常大。

  它是一种单向函数是“非对称”的,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。

  散列函数构造方法主要结合六点:

  1.折叠法

  2.数字分析法

  3.平方取中法

  4.随机法

  5.直接地址法

  6.除留余法

  //ELF Hash Function

  unsigned int ELFHash(char*str)

  {

  unsigned int hash=0;

  unsigned int x=0;

  while(*str)

  {

  hash=(hash<<4)+(*str++);//hash左移4位,当前字符ASCII存入hash低四位。

  if((x=hash&0xF0000000L)!=0)

  {//如果最高的四位不为0,则说明字符多余7个,如果不处理,再加第九个字符时,第一个字符会被移出,因此要有如下处理。

  //该处理,如果对于字符串(a-z或者A-Z)就会仅仅影响5-8位,否则会影响5-31位,因为C语言使用的算数移位

  hash^=(x>>24);

  //清空28-31位。

  hash&=~x;

  }

  }

  //返回一个符号位为0的数,即丢弃最高位,以免函数外产生影响。(我们可以考虑,如果只有字符,符号位不可能为负)

  return(hash&0×7FFFFFFF);

  }

  常见哈希算法

  目前常见的Hash算法包括国际上的Message Digest(MD)系列和Secure Hash Algorithm(SHA)系列算法,以及国内的SM3算法。

  例如计算

  “hello blockchain world,this is yeasy github”的SHA-256 Hash值,

  得到的结果将是

  “db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”。

  对于某个文件,无需查看原始内容,只要其SHA-256 Hash计算后结果相同,则说明该文件内容极大概率就是一样的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档