python -第七节课之加密操作之md5加密和base64类型
常用的加密方式就是md5加密
实际场景:用户管理数据存到数据库,注册的时候账号和密码不能存成铭文要转成加密的形式
python使用的模块 hashlib
举例子
import hashlib
s='cdsdsa'
s=s.encode()#字符串转成bytes类型
m=hashlib.md5(s)#md5方法必须传一个bytes类型
res=m.hexdigest()#hexdigest()这个需要手动写
print(res) 步骤就是加密前必须转bytes类型
一般来说就是支持正向加密,解密复杂的密码解不出来,所以说是不能逆向解密
也就是简单的字符串abc可以解密但是负责点的比如汉字,abc123就解密不出来了
#同样的字符串,md5出来的结果都一样
#niuhanyang 123456
#niuhanyang 0da0c4db92c8c7b83e93218533fa26f6
#加盐 所以需要加盐操作 防止别人拿到你的密文
#撞库 就是网址上的解密操作
def my_md5(s):
s=str(s)
s = s.encode() # 字符串转成bytes类型
m = hashlib.md5(s) # md5方法必须传一个bytes类型
result= m.hexdigest() # hexdigest()这个需要手动写
print(result)
return result
my_md5('cccs')
加盐操作,为了更加的安全
def my_md5(s):
s=str(s)+'dcsasads@#'#加盐这样加解密不出来,这个字符串就是盐,知道了密文不知道后面这串也解密不了
s = s.encode() # 字符串转成bytes类型
m = hashlib.md5(s) # md5方法必须传一个bytes类型
m=hashlib.sha256() 这两种都是常用的类型更长
m=hashlib.sha384()
result= m.hexdigest() # hexdigest()这个需要手动写
print(result)
return result
my_md5('cccs')
另外一种加密的方式叫做 base64 这种加密方式可逆的是可以破解的
import base64
s='cdasdcascdasdcdsacd'
r=base64.b16encode(s.encode())#先把字符串加密成b64方式
print(r.decode())#加密操作
import base64
s='cdasdcascdasdcdsacd'
r=base64.b64encode(s.encode())#先把字符串加密成b64方式
print(r.decode())#加密
#解密操作
r=base64.b64decode('Y2Rhc2RjYXNjZGFzZGNkc2FjZA==')#解密操作
print(r.decode())