hash是什么 -凯发k8国际版官网

qa 2020-06-03 17:42:13 阅读(...)

hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射。

,一般翻译做、,或音译为,是把任意长度的输入(又叫做预映射 pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

hash是什么

简介

hash 算法可以将一个数据转换为一个标志,这个标志和源数据的每一个字节都有十分紧密的关系。hash 算法还具有一个特点,就是很难找到逆向规律。

hash 算法是一个广义的算法,也可以认为是一种思想,使用 hash 算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。所以 hash 算法被广泛地应用在互联网应用中。

hash 算法也被称为散列算法,hash 算法虽然被称为算法,但实际上它更像是一种思想。hash 算法没有一个固定的公式,只要符合散列思想的算法都可以被称为是 hash 算法。

基本概念

若结构中存在和关键字 k 相等的记录,则必定在 f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系 f 为散列函数(hash function),按这个事先建立的表为散列表。

对不同的关键字可能得到同一散列地址,即 key1≠key2,而 f(key1)=f(key2),这种现象称碰撞。具有相同函数值的关键字对该散列函数来说称做同义词。综上所述,根据散列函数 h(key)和处理冲突的方法将一组关键字映射到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象” 作为记录在表中的存储位置,这种表便称为散列表,这一映象过程称为散列造表散列,所得的存储位置称散列地址

若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数(uniform hash function),这就是使关键字经过散列函数得到一个“随机的地址”,从而减少冲突。

散列表

散列表是散列函数的一个主要应用,使用散列表能够快速的按照关键字查找数据记录。(注意:关键字不是像在加密中所使用的那样是秘密的,但它们都是用来“解锁”或者访问数据的。)例如,在英语字典中的关键字是英文单词,和它们相关的记录包含这些单词的定义。在这种情况下,散列函数必须把按照字母顺序排列的字符串映射到为散列表的内部数组所创建的索引上。

散列表散列函数的几乎不可能/不切实际的理想是把每个关键字映射到的索引上(参考散列),因为这样能够保证直接访问表中的每一个数据。

一个好的散列函数(包括大多数加密散列函数)具有均匀的真正随机输出,因而平均只需要一两次探测(依赖于装填因子)就能找到目标。同样重要的是,随机散列函数几乎不可能出现非常高的冲突率。但是,少量的可以估计的冲突在实际状况下是不可避免的(参考生日悖论)。

在很多情况下,heuristic 散列函数所产生的冲突比随机散列函数少的多。heuristic 函数利用了相似关键字的相似性。例如,可以设计一个 heuristic 函数使得像 file0000.chk,file0001.chk,file0002.chk,等等这样的文件名映射到表的连续指针上,也就是说这样的序列不会发生冲突。相比之下,对于一组好的关键字性能出色的随机散列函数,对于一组坏的关键字经常性能很差,这种坏的关键字会自然产生而不仅仅在攻击中才出现。性能不佳的散列函数表意味着查找操作会退化为费时的线性搜索。

散列表(hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

扩展

md5、sha1 的破解

2004 年 8 月 17 日,在美国加州圣芭芭拉召开的国际密码大会上,山东大学王小云教授在国际会议上首次宣布了她及她的研究小组的研究成果——对 md5、haval-128、md4 和 ripemd 四个著名密码算法的破译结果。次年二月宣布破解 sha-1 密码。

命令描述

linux 命令——hash

hash 命令用来显示、添加和清除哈希表。该命令的语法格式如下所示。

收藏 0个人收藏

评论交流

请「」后参与评论
  1. 加载中..

相关推荐

  • certificate authority 证书颁发机构

    证书颁发机构是什么

    数字证书认证机构(ca),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
  • 安全协议 security protocol

    安全协议是什么

    安全协议又称作密码协议、加密协议,是以密码学为基础的消息交换协议,其目的是在网络环境中提供各种安全服务。安全协议是网络安全的一个重要组成部分,我们需要通过安全协议进行实体之间的认证、在实体之间安全地分配密钥或其它各种秘密、确认发送和接收的消息的非否认。
  • ca是指证书签发机构,负责签发证书、认证证书、管理已颁发证书的机关。ca 拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 ca 的签字从而信任 ca ,任何人都可以得到 ca 的证书(含公钥),用以验证它所签发的证书。
  • 《电子签名法》对可靠的电子签名有明确定义:电子签名制作数据用于电子签名时,属于电子签名人专有;签署时电子签名制作数据仅由电子签名人控制;签署后对电子签名的任何改动能够被发现;签署后对数据电文内容和形式的任何改动能够被发现。
  • 可信时间戳(tsa)是由联合信任时间戳服务中心签发的一个能证明数据电文(电子文件)在一个时间点是已经存在的、完整的、可验证的,具备法律效力的电子凭证,可信时间戳主要用于电子文件防篡改和事后抵赖,确定电子文件产生的准确时间。
  • hashmap哈希映射是基于哈希表的 map 接口的实现,hashmap用于存储key-value键值对的集合。提供了所有可选的映射操作并允许空值和空键。hashmap主要通过key存储value并提供添加获取和操作存储value的方法。
网站地图