热搜:
646 0 0
  • tv48
    • 34
      帖子
    • 0
      评论
    • 723
      源点
    什么是Hash algorithm哈希算法?
    发表于2个月前 只看楼主 帖子标签:

    哈希算法被称为哈希函数——可能该术语是从生成的哈希值可以被认为是表示值的“混合”版本的概念得出的。


    (哈希算法被称为哈希函数)

    哈希算法(哈希函数)返回的值称为哈希值,哈希码,摘要或简单哈希值。一个简单的哈希算法就是让歌曲所占硬盘的字节数作为哈希码。一种用途是称为哈希表的数据结构,广泛用于计算机软件中,用于快速数据查找。哈希算法(哈希函数)通过检测大文件中的重复记录来加速表或数据库查找。一个例子是在DNA序列中发现类似的延伸。它们也可用于加密。一个加密散列函数允许人们容易地验证一些输入数据映射到给定的散列值,但是如果输入数据是未知的,则通过知道所存储的散列值,故意难以对其重新构造(或等效替换)。这用于确保传输数据的完整性,并且是HMAC的构建块,其提供消息认证。

    哈希算法(哈希函数)用于索引和检索数据库中的项目,因为使用较短的哈希键比使用原始值找到该项目更快。它也用于许多加密算法。

    搜索任何名称首先包括计算哈希值(使用相同的哈希函数用于存储项目),然后比较使用该值的匹配。一般来说,在四位数字之间找到一个匹配,每个都只有10个可能性,而不是跨越不可预测的价值长度,每个角色有26个可能性。

    (哈希算法用于索引原始值或密钥)

    哈希算法(哈希函数)用于索引原始值或密钥,然后每次与值或键相关联的数据被检索时使用。因此,哈希总是单向操作。不需要通过分析哈希值来“颠倒”哈希函数。事实上,理想的散列函数不能通过这样的分析得出。一个好的散列函数也不应该从两个不同的输入产生相同的哈希值。如果是这样,这就是所谓的碰撞。提供极低碰撞风险的散列函数可以被认为是可以接受的。

    以下是一些相对简单的哈希算法(哈希函数):

    分割余数法:估计表中项目数量的大小。然后,该数字用作每个原始值或密钥的除数以提取商和余数。余数是散列值。(由于这种方法可能会产生一些冲突,任何搜索机制都必须能够识别冲突并提供替代搜索机制。)

    折叠方法:该方法将原始值(在本例中为数字)分为几个部分,将零件相加,然后使用最后四位数(或其他任意数字的数字)作为散列值或键。

    基数变换方法:当数值或键值为数字时,可以改变数字(或基数),导致不同的数字序列。(例如,十进制编号的密钥可以被转换为十六进制编号的密钥。)高阶数字可以被丢弃以适应均匀长度的哈希值。

    数位重排方法:这是简单地取代原始值或键,例如位置3至6中的数字,反转其顺序,然后使用该数字序列作为哈希值或键。

    在密码学中使用了几种着名的哈希算法(哈希函数)。这些包括消息摘要哈希算法MD2,MD4和MD5,用于将数字签名散列成称为消息摘要的较短值,以及安全散列算法(SHA)(标准算法),其使得较大的(60-位)消息摘要,类似于MD4。然而,对数据库存储和检索工作良好的散列函数可能不适用于加密或错误检查的目的。

    哈希算法(哈希函数)与校验和,校验数字,指纹,有损压缩,随机化函数,纠错码和密码有关(并且经常与之混淆)。虽然这些概念在某种程度上重叠,但每个都有其自己的用途和要求,而且被不同地设计和优化。例如,由美国国家药物情报中心维护的哈希守护者数据库更适合地描述为文件指纹的目录,而不是哈希值。

    转自:金色财经

    http://www.jinse.com/news/bitcoin/75380.html

添加评论 (需要登录)