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()

猜你喜欢

转载自www.cnblogs.com/hushaoyan/p/10101592.html