Python實(shí)現(xiàn)base64編碼
Base64是一種用64個(gè)字符來表示任意二進(jìn)制數(shù)據(jù)的方法。
用記事本打開exe、jpg、pdf這些文件時(shí),我們都會看到一大堆亂碼,因?yàn)槎M(jìn)制文件包含很多無法顯示和打印的字符,所以,如果要讓記事本這樣的文本處理軟件能處理二進(jìn)制數(shù)據(jù),就需要一個(gè)二進(jìn)制到字符串的轉(zhuǎn)換方法。Base64是一種最常見的二進(jìn)制編碼方法。
Base64編碼會把3字節(jié)的二進(jìn)制數(shù)據(jù)編碼為4字節(jié)的文本數(shù)據(jù),長度增加33%,好處是編碼后的文本數(shù)據(jù)可以在郵件正文、網(wǎng)頁等直接顯示。
Python內(nèi)置的base64可以直接進(jìn)行base64的編解碼:
import base64 base64.b64encode(b'binary\x00string') # b'YmluYXJ5AHN0cmluZw==' base64.b64decode(b'YmluYXJ5AHN0cmluZw==') # b'binary\x00string'
由于標(biāo)準(zhǔn)的Base64編碼后可能出現(xiàn)字符+和/,在URL中就不能直接作為參數(shù),所以又有一種"url safe"的base64編碼,其實(shí)就是把字符+和/分別變成-和_:
base64.b64encode(b'i\xb7\x1d\xfb\xef\xff') # b'abcd++//'
base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff') # b'abcd--__'
base64.urlsafe_b64decode('abcd--__') # b'i\xb7\x1d\xfb\xef\xff'Base64是一種通過查表的編碼方法,不能用于加密,即使使用自定義的編碼表也不行。
Base64適用于小段內(nèi)容的編碼,比如數(shù)字證書簽名、Cookie的內(nèi)容等。
總結(jié):Base64是一種任意二進(jìn)制到文本字符串的編碼方法,常用于在URL、Cookie、網(wǎng)頁中傳輸少量二進(jìn)制數(shù)。
PS:這里再為大家提供幾款比較實(shí)用的base64在線編碼解碼工具供大家使用:
BASE64編碼解碼工具:http://tools.jb51.net/transcoding/base64
在線圖片轉(zhuǎn)換BASE64工具:http://tools.jb51.net/transcoding/img2base64
Base64在線編碼解碼 UTF-8版:http://tools.jb51.net/tools/base64_decode-utf8.php
Base64在線編碼解碼 gb2312版:http://tools.jb51.net/tools/base64_decode-gb2312.php
到此這篇關(guān)于Python實(shí)現(xiàn)base64編碼的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python 正則匹配兩個(gè)特定字符之間的字符方法
今天小編就為大家分享一篇使用Python 正則匹配兩個(gè)特定字符之間的字符方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python網(wǎng)絡(luò)爬蟲項(xiàng)目:內(nèi)容提取器的定義
本篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲項(xiàng)目,這能有效的節(jié)省程序員的時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-10-10
PyTorch 隨機(jī)數(shù)生成占用 CPU 過高的解決方法
今天小編就為大家分享一篇PyTorch 隨機(jī)數(shù)生成占用 CPU 過高的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
從列表或字典創(chuàng)建Pandas的DataFrame對象的方法
這篇文章主要介紹了從列表或字典創(chuàng)建Pandas的DataFrame對象的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

