标签:其他 div hashlib模块 col hashlib pyc import md5加密 hash
1、字符串先转成二进制类型
使用.encode()方法转成二进制类型
import hashlib password=‘123456‘ print(password.encode())#字符串不能直接加密,要先转成二进制类型的才可以加密 #结果为:b‘123456‘
2、使用加密方法
使用.hexdigest()方法输出加密后内容
import hashlib password=‘123456‘ m=hashlib.md5(password.encode()) #先转成二进制,再加密 #print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了 print(m.hexdigest())
3、打印加密后的内容
使用dir()内置函数显示该变量的所有方法
由于该模块pycharm无法提供提示方法,即输入m“.”不出来方法,所以可以使用内置函数dir(),将所有方法打印出来。
#print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了 print(m.hexdigest())
1、检验加密结果
print(len(m.hexdigest())
2、md5加密之后是不可逆的
如果输入的加密后密码碰巧数据库里有,就能把对应的加密前密码返回给你,并不是真正的解密。
3、其他的加密方式
m=hashlib.sha1(password.encode())#不同的加密方式 m=hashlib.sha224(password.encode()) #不同的加密方式 m=hashlib.sha256(password.encode()) #不同的加密方式
原理:
如果要对password=123456加密,这个明文密码太简单,容易撞库解密,所以在123456之后随机加一个字符串,比如abc,这样实际是对123456abc进行加密,如果不知道abc这个字符串,反解的可能性降低,安全性更高。这样的一个字符串就叫做盐。
#实现加密:传入一个值,如果有盐值,则加盐加密;否则直接加密 def my_md5(s:str,salt=None): s=str(s) if salt: s=s+salt m=hashlib.md5(s.encode()) return m.hexdigest()
标签:其他 div hashlib模块 col hashlib pyc import md5加密 hash
原文地址:https://www.cnblogs.com/turboliu/p/10459879.html