6-1 md5加密
1、导入hashlib模块,使用它的md5方法进行加密
1 import hashlib # import md5 python2 2 3 s = 'admin123' 4 5 # 1、将字符串类型转换成byte类型才能加密 6 s = s.encode() 7 8 # 2、将s进行md5加密处理 9 m = hashlib.md5(s) 10 11 # 3、输出加密后的值 12 print(m.hexdigest()) 13 # 0192023a7bbd73250516f069df18b500
2、使用其他的sha224,sha256,sha512的方式进行加密,加密更长,更安全
import hashlib # import md5 python2 s = 'admin123' # 使用其他的sha224,sha256,sha512的方式进行加密,加密更长,更安全 m = hashlib.sha224(s.encode()) print(m.hexdigest()) m = hashlib.sha256(s.encode()) print(m.hexdigest()) m = hashlib.sha512(s.encode()) print(m.hexdigest())
3、加盐--就是在需要加密的字符串中加入一部分固定的字符串后,在进行加密 更安全
import hashlib # import md5 python2 # 在字符串前加上固定的字符 random_str = 'hsy' s = 'admin123' s = random_str + s # 1、将字符串类型转换成byte类型才能加密 s = s.encode() # 2、将s进行md5加密处理 m = hashlib.md5(s) # 3、输出加盐加密后的值 print(m.hexdigest()) # f1bbcf42870c1019872d2f67b318e278
4、md5加密是不可逆的,其他软件所谓的解密利用的是撞库的方法
#因为同一字符串加密后的密文是相同的,有些软件将常用的明文对应的MD5加密后的密文存到数据库中 #md5是不可逆的,就是没有办法解密的 #撞库 # 7d98f0c40d585721ea4a9b42ee00b3a0 123456 # 0192023a7bbd73250516f069df18b500 admin123 # 彩虹表
5、md5加密函数
def my_md5(s,salt=''): """ 转化成md5加密字符 :param s: 输入的任意的字符串 :param salt: 加盐 默认为空 :return: 加密后的值 """ s = s+salt news = str(s).encode() m = hashlib.md5(news) return m.hexdigest()