《深入浅出HTTPS​​​​​​》读书笔记(6):Hash算法

随机数生成器算法和密码学Hash算法都是密码学中的基础算法,很多其他的密码学算法选择这两个算法作为加密基元(Cryptographic Primitives)。

加密基元就是一些基础的密码学算法,通过它们才能够构建更多的密码学算法、协议、应用程序。

密码学Hash算法的使用非常简单,可以用下列的公式描述:

摘要/散列值/指纹=hash(消息)

该公式由三部分组成,hash表示特定的Hash算法,消息就是输入值。

由于Hash算法有很多功能,所以Hash算法有多种称呼,比如摘要算法(Message Digest Algorithms)、单向散列函数(Cryptographic One-way Hash Functions)。

密码学Hash算法的主要特性如下:

◎相同的消息总是能得到同样的摘要值,特定的Hash算法,不管消息长度是多少,最终的摘要值长度是相同的。

◎不管多长的消息,Hash运算非常快速。

◎通过摘要值很难逆向计算出原始消息。

◎原始消息一旦修改,即使是很轻微的修改,最终的摘要值也会产生变化。

◎很难找出两个不同的消息,并且它们的摘要值是相同的。

从密码学的角度考虑,Hash算法能够实现密码学的某个目标,那就是消息防篡改。

【Hash算法的用途】

1)文件比较

大部分用户都在下载站下载过文件,每个下载页面会标识出文件对应的MD5值(MD5是一种Hash算法),用户完成文件下载后,为了避免该文件被攻击者篡改。

手动计算下载文件的MD5值,一旦该值和下载页面标识的MD5值是一致的,就可以放心使用。

2)身份校验

这也是Hash算法比较常用的一种功能,微博和微信系统中每个用户都有一个口令(password或者passphrase),系统为了校验用户的口令,需要在数据库中存储口令。

一旦数据库发生泄露,所有用户的口令都会暴露。

系统可以计算出口令的摘要值,然后存放到数据库中。采用这种解决方案的原理就是摘要值是很难逆向的,即使数据库泄露,攻击者也无法通过口令的摘要值计算出原始口令,攻击者很难伪造用户进行攻击。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值