为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 网络编程 > 其它综合 正文

哈希函数的作用以及常用的哈希函数

三叶资源网 2022-10-22 19:18:50 其它综合 271 ℃ 0 评论

哈希函数(散列算法)的作用

哈希函数是一种将任意长度的消息映射为固定长度散列值(创建数字“指纹” )的函数。它的作用包括以下几点:

  1. 数据加密:哈希函数可以将原始数据加密成固定长度的密文,可以用于保护敏感数据的安全性,防止数据被篡改或窃取。
  1. 数据完整性验证:哈希函数可以将数据转换成散列值,这个散列值可以用于验证数据的完整性。只要数据未被篡改,计算出的散列值就应该是不变的。如果散列值不一致,就说明数据可能已被篡改。
  1. 数据检索:哈希函数可以将数据映射为固定长度的散列值,这些散列值可以用于数据检索。哈希表就是一种基于哈希函数实现的数据结构,可以快速地进行数据查找、插入、删除等操作。
  1. 数据分片:哈希函数可以将数据映射到不同的分片中,这些分片可以被用于数据分布式存储和处理。哈希函数可以将数据的哈希值与分片数量取模得到一个分片编号,然后将数据存储到对应的分片中。
  1. 安全验证:哈希函数可以被用于安全验证,例如密码验证。在存储用户密码时,通常会使用哈希函数将用户密码转换成散列值,然后将这个散列值存储在数据库中。当用户登录时,系统会将用户输入的密码再次通过哈希函数转换成散列值,然后与数据库中存储的散列值进行比较,从而进行密码验证。

常用的哈希函数

  1. MD5:基于消息的长度产生一个 128 位的散列值,常用于数据完整性验证和密码加密。
  1. SHA-1:基于消息的长度产生一个 160 位的散列值,被广泛应用于数字签名和证书认证。
  1. SHA-2:包括 SHA-224、SHA-256、SHA-384、SHA-512 等多种变体,散列值长度从 224 位到 512 位不等,是一种安全性较高的哈希函数。
  1. CRC:循环冗余校验码,通常用于数据传输错误检测。
  1. MurmurHash:一种非加密型哈希函数,适用于大规模数据的哈希处理,具有较低的冲突率和较高的速度。
  1. CityHash:一种快速的哈希函数,适用于大规模数据和分布式环境下的哈希处理。
  1. FNV Hash:一种非加密型哈希函数,通过将数据的每个字节与一个较大的质数进行异或运算得到哈希值,速度较快。
  1. Jenkins Hash:一种流行的哈希函数,适用于任何大小的数据,能够产生高质量的哈希值,冲突率较低。

对比:

哈希函数

发明时间

散列值长度

主要用途

MD5

1991

128 位

数据完整性验证和密码加密

SHA-1

1995

160 位

数字签名和证书认证

SHA-2

2001

224、256、384、512 位

安全性较高的哈希函数

CRC

1961

固定长度

数据传输错误检测

MurmurHash

2008

固定长度

大规模数据的哈希处理

CityHash

2011

固定长度

大规模数据和分布式环境下的哈希处理

FNV Hash

1991

固定长度

适用于哈希表和散列值比较

Jenkins Hash

1997

固定长度

适用于任何大小的数据,高质量的哈希值,冲突率较低

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
MiniBlinkYY关注易包斗鱼弹幕助手屏幕录像加密与解密第四版RAR注释HPSocket引流ICO图标生成ASP网络验证黑月版色彩识别腾讯滑块识别APP加密EWebsocket系统服务自动回复动态组件虎牙登录源码
最新评论