【Python】基础部分 -- 常用模块 -- hash/MD5 加密算法

  hash/MD5 加密算法

1)   hash特性

       hash只保证程序内结果一致,可能结果会重复

 

2)   md5说明

       MD5是基于128位hash值的算法,一个输入对应的结果是唯一的

 

3)   md5特点:

       1.压缩性: 任意长度的数据,算出的MD5的长度都是固定的

       2.容易计算: 从原始数据计算出MD5值很容易

       3.抗修改性:对原数据进行任何改动,生成的MD5值区别都会很大

       4.强抗碰撞:已知原数据和MD5,想找到一个具有相同MD5值的数据是非常困难的

 

4)   md5的用途

       1.防篡改

       2.防止直接看到明文

       3.防止抵赖(数字签名)    

      

import hashlib
# 待加密信息
str = 'this is a md5 test.'

# 创建md5对象
hl = hashlib.md5()

# Tips
# 此处必须声明encode
# 若写法为hl.update(str)  报错为: Unicode-objects must be encoded before hashing
hl.update(str.encode(encoding='utf-8'))

print('MD5加密前为 :' + str)
print('MD5加密后为 :' + hl.hexdigest())
posted @ 2018-05-31 18:09  caya  阅读(161)  评论(0编辑  收藏  举报