hashlib模块--摘要算法

算法介绍:

Python的hashlib提供了常见的摘要算法;MD5,SHA()等。

摘要算法,又称哈希算法,散列算法。通过一个函数,吧任意长度的字符串转换为固定长度的字符串(16进制)

摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,母的就是为了防止原始数据被篡改

摘要算法是一个单向函数,计算data容易,反向计算data却是非常困难,而且对于原始数据做出一个bit的修改都会导致计算出的摘要完全不同

import hashlib
md5 = hashlib.md5()
md5.update('zhang'.encode('utf-8'))
print(md5.hexdigest())

 计算结果:d0cd2693b3506677e4c55e91d6365bff


 

应用:保存在数据库中的密码文件

黑客破解密码:黑客手机都有一份常见密码的MD5反推表,通过和数据库文件对比可以轻易的知道你的用户名密码;

为了防止被黑客篡改,此时就应‘加盐’

while True:
    '''对输入的密码加密'''
    import hashlib
    user = input('username:')
    passwd = input('password:')
    md5 = hashlib.md5(user.encode('utf-8'))    #加盐
    md5.update(passwd.encode('utf-8'))
    print(md5.hexdigest())

 

 

posted @ 2017-08-17 16:21 前方、有光 阅读(...) 评论(...) 编辑 收藏