前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mass哈希游戏系统开发技术方案丨竞猜;幸运;大小等不同模式分析

mass哈希游戏系统开发技术方案丨竞猜;幸运;大小等不同模式分析

原创
作者头像
KFZ433
发布2022-07-01 13:40:14
4520
发布2022-07-01 13:40:14
举报
文章被收录于专栏:NFT链游的应用NFT链游的应用

哈希函数的目标是将任意长度的输入,通过变换后得到固定长度的输出值。输入值称为消息(Message),输出值称为散列值、消息摘要(message digest)或者指纹。因此,哈希也称为消息摘要函数(message digest function)。

  密码学中的哈希函数具有如下特性:

  (1)不管是消息的长度是多少,散列值都是有固定长度的;

  (2)相同的消息,散列值是相同的,不相同的消息,散列值是不相同的;

  (3)可以通过消息计算出散列值,但是无法通过散列值计算出消息;

  (4)不管消息的长度有多长,都要在短时间内完成散列值的计算;

  如果不同的消息,计算出了相同的散列值,就产生了冲突,或者称为碰撞。

  如发生了碰撞,则相应的哈希函数在密码学中就不再安全。

  所以,哈希函数的职责就是构建一个不会产生碰撞的算法。

  无法通过散列值计算出消息,这一特性称为单向性,哈希函数也被称为单向散列函数。

  A hash function is a way to create a small digital fingerprint from any kind of data.The hash function compresses the message or data into a summary,which makes the amount of data smaller and fixes the format of the data.This function scrambles the data and creates a new fingerprint called hash value.

  哈希函数可以应用于:

  (1)密码保护:系统中不再记录用户密码,而是记录散列值;

  (2)云盘秒传;

  (3)文件校验:判断是否为同一文件。

  满足哈希特性的函数都称为哈希函数。常见的有:MD5、SHA-1(Secure Hash Algorithm)、SHA256、SHA512。

  二、MD5

  MD5信息-摘要算法(Message-Digest Algorithm5)是一种哈希算法,散列值的位数是128位。现已被破解。

  MD5生成固定位数散列值的大致步骤是:

  

(1)将消息进行补位,消息长度的目标值是512*N+448+64。

  如果位数不足448,则需补位,规则是第1位填充1,其余位填充0。

  剩余的位数64位(512-448)记录了消息的原始长度,处理后消息的长度为M=512*(N+1)。

 

 (2)设置散列值的初始值。

  MD5哈希散列值为128位,每32位为一组,散列值共分4组,每组分别指定初始值:

  0x01234567、0x89ABCDEF、0xFEDCBA98、0x76543210(从0到15,再从15到0)。

  (3)预设公式与常数表

  A.4个线性函数

  F(X,Y,Z)=(X&Y)|((~X)&Z)

  G(X,Y,Z)=(X&Z)|(Y&(~Z))

  H(X,Y,Z)=X^Y^Z

  I(X,Y,Z)=Y^(X|(~Z))

  进行与、或、非或异或的操作。

  B.1个常数表

  记为T<i>(i=1~64),T<i>=4294967296*abs(sin(i))

  (4)计算

  MD2散列值的计算,需要有两层循环

  外层:

  对M进行循环计算,每次512位,循环次数为N+1。

  内层:

  对512位分成16组,每组32位。

  对每个分组进行4轮运算:

  A=B+((A+F(B,C,D)+M[j]+T<i>)<<<S)

  A=B+((A+G(B,C,D)+M[j]+T<i>)<<<S)

  A=B+((A+H(B,C,D)+M[j]+T<i>)<<<S)

  A=B+((A+I(B,C,D)+M[j]+T<i>)<<<S)

  (5)拼接ABCD,形成MD5散列值。

  通过MD5的运算规则,就不难理解,为什么原始文件发生一点变化,都会导致MD5的值不同了

  Hash,generally translated as hash or transliterated as hash,is generally called hash function.It is the processing of hash algorithm of input(also known as pre mapping pre image)of any length into output of fixed length,and the output data can be called hash value or hash value.This conversion is a kind of compression mapping,that is,a reasonable compression process.The space occupied by the output hash value is much smaller than the input space,but different inputs may be hashed into the same output.In other words,the output value is unique,but it is impossible to find the one-to-one corresponding input value.

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

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

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

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

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