关于哈希算法,可能和这个板块无关

问题描述

百度百科上的解释:----- 哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。------------------------------------------------------------------------如上所说任意长度的二进制映射为固定长度的较小二进制,它是唯一的。这个应该做不到啊,比如说8bit的二进制数据再怎么映射成3bit的数据,它也肯定是有雷同的啊,求解!

解决方案

本帖最后由 plahitzxl 于 2010-04-26 09:41:40 编辑
解决方案二:
雷同的叫碰撞,这种情况是不可避免的,因为项的个数比位置要多,但是有迅速解决碰撞的方法,最简单的有:线性探测法、二次探测法、分别链接法你可以去百度一下这些方法
解决方案三:
要找到散列为同一个值的两个不同的输入,在计算上是不可能的-------是说这个是不可逆的?然后如果你企图想用一段字符来覆盖另一段字符,其哈希值必然发生改变,所以就能判断原数据是不是相同的。如果你企图找到哈希值和原数据一样的数据,这是几乎不可能的,因为它理论上是不可逆的。嗯。应该是这样,请各位指正。
解决方案四:
学习了
解决方案五:
数据结构对这有详细的描述
解决方案六:
友情帮顶
解决方案七:
引用2楼plahitzxl的回复:

要找到散列为同一个值的两个不同的输入,在计算上是不可能的-------是说这个是不可逆的?然后如果你企图想用一段字符来覆盖另一段字符,其哈希值必然发生改变,所以就能判断原数据是不是相同的。如果你企图找到哈希值和原数据一样的数据,这是几乎不可能的,因为它理论上是不可逆的。嗯。应该是这样,请各位指正。

哈希散列值相同是允许的,两个不同输入可以有相同的散列,但不用去改变谁,只要去解决碰撞就可以了jdk中关于哈希有这样的话两个对象不相等,那么对这两个对象中的任一对象上调用hashCode方法不要求一定生成不同的整数结果就是说散列的值可以相同在java.util.hashset内部,就是用散列来实现的,里面也考虑了不同输入有相同的哈希值,并提供了解决方法,它的解决方法是线性探测法,如果一个输入的值发现它的哈希已经有了,就在这个哈希的另一位置进行存储你可以看下hashset中关于散列相同的处理,你可以去看jdk源码或者到这个网站看一下

时间: 2024-11-17 18:15:37

关于哈希算法,可能和这个板块无关的相关文章

用Python实现通过哈希算法检测图片重复的教程

 Iconfinder 是一个图标搜索引擎,为设计师.开发者和其他创意工作者提供精美图标,目前托管超过 34 万枚图标,是全球最大的付费图标库.用户也可以在 Iconfinder 的交易板块上传出售原创作品.每个月都有成千上万的图标上传到Iconfinder,同时也伴随而来大量的盗版图.Iconfinder 工程师 Silviu Tantos 在本文中提出一个新颖巧妙的图像查重技术,以杜绝盗版. 我们将在未来几周之内推出一个检测上传图标是否重复的功能.例如,如果用户下载了一个图标然后又试图通过上

用Python实现通过哈希算法检测图片重复的教程_python

Iconfinder 是一个图标搜索引擎,为设计师.开发者和其他创意工作者提供精美图标,目前托管超过 34 万枚图标,是全球最大的付费图标库.用户也可以在 Iconfinder 的交易板块上传出售原创作品.每个月都有成千上万的图标上传到Iconfinder,同时也伴随而来大量的盗版图.Iconfinder 工程师 Silviu Tantos 在本文中提出一个新颖巧妙的图像查重技术,以杜绝盗版. 我们将在未来几周之内推出一个检测上传图标是否重复的功能.例如,如果用户下载了一个图标然后又试图通过上传

php-perl哈希算法实现

 php-perl哈希实现算法–DJBX33A(Daniel J. Bernstein, Times 33 with Addition)APR哈希默认算法  代码如下: APR_DECLARE_NONSTD(unsigned int) apr_hashfunc_default(const char *char_key,                                                       apr_ssize_t *klen) {     unsigned i

一致性哈希算法的应用及实现

一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法, 由MIT的Karger及其合作者提出,现在这一思想已经扩展到其它领域. 1997年发表的学术论文中介绍了"一致性哈希"如何应用于用户易变的分布式Web服务中. 一致性哈希可用于实现健壮缓存来减少大型Web应用中系统部分失效带来的负面影响.(维基百科) hash算法的单调性 Hash 算法的一个衡量指标是单调性( Monotonicity ),定义如下: 单调性是指如果已经有一些内容通过哈希分派

【转】感知哈希算法——找出相似的图片

Google 图片搜索功能         在谷歌图片搜索中, 用户可以上传一张图片, 谷歌显示因特网中与此图片相同或者相似的图片.         比如我上传一张照片试试效果: 原理讲解         参考Neal Krawetz博士的这篇文章, 实现这种功能的关键技术叫做"感知哈希算法"(Perceptual Hash Algorithm), 意思是为图片生成一个指纹(字符串格式), 两张图片的指纹越相似, 说明两张图片就越相似. 但关键是如何根据图片计算出"指纹&qu

一致性哈希算法的Java实现

一致性哈希算法是分布式系统中常用的算法.比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了. 因此,引入了一致性哈希算法: 把数据用hash函数(如MD5),映射到一个很大的空间里,如图所示.数据的存储时,先得到一个hash值,对应到这个环中的每个位置,如k1

Windows 8 Store Apps学习(31) 加密解密: 哈希算法, 对称算法

介绍 重新想象 Windows 8 Store Apps 之 加密解密 hash 算法(MD5, SHA1, SHA256, SHA384, SHA512) hmac 算法(MD5, SHA1, SHA256, SHA384, SHA512) 本地数据的加密解密 对 称算法(AES, DES, 3DES, RC2, RC4) 示例 1.演示如何使用 hash 算法(MD5, SHA1, SHA256, SHA384, SHA512) Crypto/Hash.xaml.cs /* * 演示如何使用

【转载】五分钟理解一致性哈希算法(consistent hashing)

   转载自:http://blog.csdn.net/cywosp/article/details/23397179 简介:     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用.     一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义

.NET平台开源项目速览(12)哈希算法集合类库HashLib

    .NET的System.Security.Cryptography命名空间本身是提供加密服务,散列函数,对称与非对称加密算法等功能.实际上,大部分情况下已经满足了需求,而且.NET实现的都是目前国际上比较权威的,标准化的算法,所以还是安全可靠的.但也有一些场合,需要自己实现一些安全散列算法.不仅仅是学习,也可以进行测试以及相关研究.而今天要介绍的正式这样一个包括了目前几乎所有散列函数算法实现的.NET开源组件,大家可以实际使用,查看或者修改等.满足更多不同人,不同层次的需求.那就看看相关