散列(hash)算法与应用目录
散列(hash)算法与应用
最近在准备期末的考试,复习然后顺便写下来记录笔记。
本笔记记录的是SHA和MD算法。
一、散列(hash)算法
1. 概念
把任意长度的输入通过单向散列函数H()计算后,变换成固定长度的输 出,即散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远 小于输入的空间,不同的输入可能会产生相同的输出,但不能由散列值来 唯一确定输入值。常见的散列算法:报文摘要算法MD、安全散列算法SHA
2.特点
- 对于任意给定的a,若a≠b,则H(a)不等于H(b)。
- 输入不同的消息极小概率下得到相同的散列值
- 一样的散列值一定来自相同的消息
- 对于任意给定的散列值y,不能通过计算找到x,使得H(x)=y。
- 单向、不可逆,即使知道了散列算法,也不能由散列值得到原始消息
3.散列算法应用
- 完整性检测
二、文章摘要算法(Message Digest)
1.概念
MD是面向字节的加密散列函数,能够把任意长度的数据计算成为128 比特固定长度的散列值,也叫消息摘要或指纹。容易计算及不可逆性、压缩性、抗修改性