type
status
date
slug
summary
tags
category
icon
password
Property
目录
摘要算法
Python
的hashlib
提供了常见的摘要算法,如MD5,SHA1等等。摘要算法又称哈希算法、散列算法,通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
通过摘要函数
f()
对任意长度的数据data
计算出固定长度的摘要digest
,可以发现原始数据是否被人篡改过。摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算
f(data)
很容易,但通过digest
反推data
却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。以常见的摘要算法MD5为例,计算出一个字符串的MD5值:
如果数据量很大,可以分块多次调用
update()
,最后计算的结果是一样的: