base64编解码与hash加密

base64编解码

利用base64可以将二进制数据编码为64个字符组成的字符串,64个字符为a-z,A-Z,0-9,+,/。base64编码是将三个字节的二进制数据编码为四个字节的字符数据,如果字节数不为3的倍数base64会将\x00补在末尾,所以会常在base64字符串的末尾见到一个或者两个的=号。
base64编码

import base64

url = 'https://www.example.com/'
base64.b64encode(url.encode('utf-8'))  #  b'aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20v'
# b64encode()接收二进制字符串,所以需要将字符串进行编码。其返回值也为二进制字符串
# base64.b64encode(url.encode('utf-8')).decode()  # 将二进制base64字符串解码

base64解码

b64_str = 'aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20v'
base64.b64decode(b64_str)  # b'https://www.example.com/'
# b64decode()接收字符串,其返回结果为解码后的二进制数据

# 也可对二进制字符串进行解码
 base64.decodebytes(b64_str.encode())  # b'https://www.example.com/'

小技巧:遇到base64编码的二进制文件可以直接解码用io字节流接收再用其他模块加载,无需在本地保存文件再使用其他模块加载。

from io import BytesIO 
from PIL import Image

img_buffer = BytesIO(base64.b64decode(b64_str))   # base64解码后直接用字节流接收
im = Image.open(img_buffer)
img_buffer.close()  # 关闭字节流

hash加密

哈希加密是对字符串进行加密,其加密后的散列值不可逆,即hash加密是单向加密不可解。python内置的hashlib库提供了md5, SHA1, SHA224, SHA256, SHA384, SHA512 加密算法的支持

import hashlib

md5 = hashlib.md5()  # 创建md5对象
md5.update('example'.encode())   # 载入字符串
md5.hexdigest()  # 获取加密后的散列值
# 1a79a4d60de6718e8e5b326e338ae533

# 简便方法
hashlib.md5('example'.encode()).hexdigest()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容