前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hash哈希游戏竞猜系统开发丨玩法和制度丨哈希游戏竞猜

Hash哈希游戏竞猜系统开发丨玩法和制度丨哈希游戏竞猜

原创
作者头像
I762O729II9
修改2022-08-26 11:45:06
1K0
修改2022-08-26 11:45:06
举报
文章被收录于专栏:分享1

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

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

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

这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

Hash主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做Hash值.也可以说,通俗的说Hash就是找到一种数据内容和数据存放地址之间的映射关系。

在动态变化的Cache环境中,由四个定义去判断哈希算法的好坏:

1.分散性---指哈希算法应该尽量避免不一致的情况发生,尽量降低分散性。在终端通过哈希的过程中,将终端映射到缓冲上时,会因不同终端所见缓冲范围有可能不同,而得到哈希的结果不一致。当然,终端有可能看不到所有的缓冲,可能只看到其中的一部分。相同的内容会被不同的终端映射到不同的缓冲区中,如果相同的内容被储存到不同的缓冲区中,会降低系统储存的效率的。

2.平衡性---很多哈希算法都能满足这个条件的。哈希结果能够尽量分不到所有的缓冲中去,这样可以缓冲空间都能得到利用。

3.负载:哈希算法是应该尽量的降低缓冲的负荷,和上述的分散性一样,该情况应当尽量避免。对一个特定的缓冲区来说,可能会被不同的映射为不同的内容,这个负载实际上就是从另一个角度来看待分散性,不同的终端可能会将相同的内容映射到不同的缓冲区中去。

4.单调性:哈希的结果要尽量保证原有并已分配的内容可以被映射到原有的有或者新的缓冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区。也就是说,去如果已经有一些内容通过哈希分配到了相应的缓冲中,又会有新的缓冲被加到系统当中。

哈希函数、算法

哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。

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

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

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

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

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