Python学习笔记,25MD5加密与base64加密

一、MD5加密

  python中使用自带的加密模块,hashlib进行MD5加密

  知识背景:对于用户敏感信息,如登录密码,在明文传递参数时,可能会被别人窃取,需要通过MD5加密来加密数据

  MD5加密特性:无论是字符串、数字、汉字、文件等,加密完均是18位的数字和字符串组合,且加密后无法解密,网站的解密一般通过撞库来实现。

  

import hashlib
s = ['汉字','asdnecc',1234]#任何字符串,数字,汉字,文件等,加密完都是18位字符串
for i in s:
    m = hashlib.md5(str(i).encode())#入参必须通过encode()方法转换为字节型
    result = m.hexdigest()#通过十六进制格式返回
    print(result)

  返回结果:

8a97ee1fcddc24870fb66b4b58c41214
1f85206057bcc8a7e9543a94ac60c96e
81dc9bdb52d04dc20036dbd8313ed055

 

二、加盐

  背景:由于用户可能设置比较简单的密码如123456,654321,等有比较强规则的数据时,由于MD5加密后是固定字符串,很容易被其他人猜出密码,所以需要通过加盐操作来对数据加密

  

salt = '21385#$%&*'
password = input('password:')
password +=salt
m = hashlib.md5(password.encode())
result = m.hexdigest()
print(result)

  返回结果:

password:123
21d01ea49572576a3e09dc71709b05d1

  

三、base64位加密

  python中使用自带的base64模块进行base加密

  base64加密特性:

    1、加密后的数据,可以通过解密得到原数据

    2、加密后的数据长度不是固定值,随着加密字符串的大小而变化

 

import base64 #能加密 解密,末尾有等于号一般都是base64加密
#加密
s = 'https://www.baidu.com'
b = base64.b64encode(s.encode())#接收bytes入参,返回bytes加密结果
t = b.decode()#返回的bytes数据通过decode()转换为字符串
print(t)
#解密
b = base64.b64decode(t)
print(b.decode())

  返回结果:

aHR0cHM6Ly93d3cuYmFpZHUuY29t
https://www.baidu.com