base64編解碼與hash加密

base64編解碼

利用base64可以將二進制數(shù)據(jù)編碼為64個字符組成的字符串,64個字符為a-z,A-Z,0-9,+,/。base64編碼是將三個字節(jié)的二進制數(shù)據(jù)編碼為四個字節(jié)的字符數(shù)據(jù),如果字節(jié)數(shù)不為3的倍數(shù)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()接收字符串,其返回結(jié)果為解碼后的二進制數(shù)據(jù)

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

小技巧:遇到base64編碼的二進制文件可以直接解碼用io字節(jié)流接收再用其他模塊加載,無需在本地保存文件再使用其他模塊加載。

from io import BytesIO 
from PIL import Image

img_buffer = BytesIO(base64.b64decode(b64_str))   # base64解碼后直接用字節(jié)流接收
im = Image.open(img_buffer)
img_buffer.close()  # 關(guān)閉字節(jié)流

hash加密

哈希加密是對字符串進行加密,其加密后的散列值不可逆,即hash加密是單向加密不可解。python內(nèi)置的hashlib庫提供了md5, SHA1, SHA224, SHA256, SHA384, SHA512 加密算法的支持

import hashlib

md5 = hashlib.md5()  # 創(chuàng)建md5對象
md5.update('example'.encode())   # 載入字符串
md5.hexdigest()  # 獲取加密后的散列值
# 1a79a4d60de6718e8e5b326e338ae533

# 簡便方法
hashlib.md5('example'.encode()).hexdigest()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容