说明
SHA256的全程是Secure Hash Algorithm 256,这里有几个关键字说明:
1. Secure的意思是指算法的输入输出一一对应,且是不可逆的(即只有编码而没有解码);
2. Hash Algorithm指的是散列算法,散列算法指的是将一个任意长度的输入数据转换成固定长度的输出;
3. 256是输出结果的位数,这个输出结果又被称为Hash值或者摘要;
SHA256算法是SHA-2族算法中的一个,其它的还是SHA222、SHA512等。
SHA256常被用于加密。
具体算法实现不在这里说明。
使用
Python中通过包含hashlib模块来使用各类hash算法:
import hashlib
下面是一个例子:
import hashlib
if __name__ == "__main__":
s = hashlib.sha256() # Get the hash algorithm.
s.update("jiangwei") # Hash the data.
b = s.hexdigest() # Get he hash value.
print b
得到的结果:
扫描二维码关注公众号,回复:
12027744 查看本文章
36d6824c3942c1ec34d1b5cc2f5cbe3d2c4110223bce905ddafe0592723411f0
它的长度是64,每个字符4位,所以总计是256位。
当然也可以修改算法:
s = hashlib.sha512() # Get the hash algorithm.
这要就得到512位的摘要:
3ee15fe269635e2c05d7e965d97d82b95fefcdf7f937cb14e117d235a440b9e173d90f3c669a5dce21d6b8a20ff2376172d171d0c9d9b1f2670d39aefaab7a10