Python?中如何將十六進(jìn)制轉(zhuǎn)換為?Base64
本篇文章將介紹在 Python 中將 hex 轉(zhuǎn)換為 base64 的方法。
使用 Python 中的 codecs 模塊將 HEX 轉(zhuǎn)換為 BASE64
Python 中的 codecs 模塊提供了 encode() 和 decode() 方法來實(shí)現(xiàn)不同文本編碼格式之間的轉(zhuǎn)換。
encode() 函數(shù)有兩個(gè)參數(shù); 輸入字符串和編碼該字符串所需的格式。 此 encode() 函數(shù)的返回類型是以第二個(gè)參數(shù)中指定的格式編碼的字符串。
decode() 函數(shù)也只有兩個(gè)參數(shù); 編碼的輸入字符串和輸入字符串的編碼格式。 decode() 函數(shù)根據(jù)第二個(gè)參數(shù)中指定的格式返回解碼后的字符串。
要將十六進(jìn)制字符串編碼為 base64 字符串,我們首先通過將 hex 指定為第二個(gè)參數(shù),使用 decode() 函數(shù)將該十六進(jìn)制字符串解碼為常規(guī)字符串。 然后,我們將通過將 base64 指定為第二個(gè)參數(shù),使用 encode() 函數(shù)對(duì)先前操作的輸出進(jìn)行編碼。
以下代碼片段詳細(xì)說明了使用 Python 中的編解碼器模塊將十六進(jìn)制字符串編碼為 base64 字符串所需的步驟。
import codecs hex_string = "10000000000002ae" b64_string = codecs.encode(codecs.decode(hex_string, 'hex'), 'base64').decode() print(b64_string)
輸出:
EAAAAAAAAq4=
在上面的代碼中,我們使用編解碼器模塊將十六進(jìn)制字符串 10000000000002ae 編碼為 base64 字符串 EAAAAAAAAq4= 。
使用 Python 中的 base64 模塊將 HEX 轉(zhuǎn)換為 BASE64
Python 中另一個(gè)用于在不同文本編碼格式之間進(jìn)行轉(zhuǎn)換的有用模塊是 base64。 base64 模塊為此任務(wù)提供了 b64encode() 和 b64decode() 函數(shù)。
b64encode()函數(shù)將字節(jié)串作為輸入?yún)?shù),將其轉(zhuǎn)換為base64格式,返回base64編碼后的字符串。 同樣,b64decode() 函數(shù)采用 base64 編碼的字符串,將其轉(zhuǎn)換為字節(jié)字符串,并返回解碼后的字節(jié)字符串。
對(duì)于這個(gè)特殊問題,我們必須首先使用 bytes.fromhex() 函數(shù)將輸入字符串轉(zhuǎn)換為字節(jié)字符串。 然后,我們將使用 b64encode() 函數(shù)將該字節(jié)字符串編碼為 base64 字符串。
以下代碼片段演示了我們?nèi)绾问褂?Python 中的 base64 模塊將十六進(jìn)制字符串編碼為 base64 字符串。
from base64 import b64encode, b64decode hex_string = '10000000000002ae' b64_string = b64encode(bytes.fromhex(hex_string)).decode() print(b64_string)
輸出:
EAAAAAAAAq4=
在上面的代碼中,我們使用 base64 模塊將十六進(jìn)制字符串 10000000000002ae 編碼為 base64 字符串 EAAAAAAAAq4=。
使用 Python 中的 binascii 模塊將 HEX 轉(zhuǎn)換為 BASE64
我們還可以使用 Python 的 binascii 模塊在不同的文本編碼格式之間進(jìn)行轉(zhuǎn)換。 binascii 模塊提供了 unhexlify() 和 b2a_base64() 等函數(shù),可以在這種情況下使用。
unhexlify() 函數(shù)將十六進(jìn)制字符串作為輸入?yún)?shù),將其轉(zhuǎn)換為字節(jié)字符串,并返回結(jié)果。 b2a_base64() 函數(shù)將一個(gè)字節(jié)字符串作為輸入?yún)?shù),將其轉(zhuǎn)換為 base64 字符串,并返回結(jié)果。
在我們的特定問題中,我們需要首先使用 unhexlify() 函數(shù)將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)字符串,然后使用 b2a_base64() 函數(shù)將前面操作的結(jié)果轉(zhuǎn)換為 base64 字符串。
以下代碼示例演示了如何使用 binascii 模塊在 Python 中將十六進(jìn)制字符串轉(zhuǎn)換為 base64。
from binascii import unhexlify, b2a_base64 hex_string = "10000000000002ae" b64_string = b2a_base64(unhexlify(hex_string)) print(b64_string)
輸出:
EAAAAAAAAq4=
在上面的代碼中,我們使用 binascii 模塊將十六進(jìn)制字符串 10000000000002ae 編碼為 base64 字符串 EAAAAAAAAq4=。 在上面討論的所有方法中,binascii 方法是最直接的,我們需要編寫最少的代碼來實(shí)現(xiàn)它。
在 Python2 中將 HEX 轉(zhuǎn)換為 BASE64
另一方面,如果我們使用原生支持十六進(jìn)制和 base64 字符串的 Python2,我們可以大大減少所需的代碼量。 下面的代碼片段演示了我們?nèi)绾卧?Python2 中將十六進(jìn)制字符串轉(zhuǎn)換為 base64 字符串。
hex_string = "10000000000002ae"
b64_string = hex_string.decode("hex").encode("base64")
print(b64_string)輸出:
EAAAAAAAAq4=
我們不需要在上面的代碼中導(dǎo)入任何模塊,因?yàn)?Python2 本身就支持十六進(jìn)制和 base64 字符串。 我們首先使用 decode("hex") 函數(shù)將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)字符串,然后使用 encode("base64") 函數(shù)將其輸出編碼為 base64。
到此這篇關(guān)于在 Python 中將十六進(jìn)制轉(zhuǎn)換為 Base64的文章就介紹到這了,更多相關(guān)Python 十六進(jìn)制轉(zhuǎn)換 Base64內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python繪制規(guī)則網(wǎng)絡(luò)圖形實(shí)例
今天小編大家分享一篇python繪制規(guī)則網(wǎng)絡(luò)圖形實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python SQLAlchemy的Mapping與Declarative詳解
這篇文章主要介紹了python SQLAlchemy的Mapping與Declarative詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
使用python檢測主機(jī)存活端口及檢查存活主機(jī)
這篇文章主要介紹了使用python檢測主機(jī)存活端口及檢查存活主機(jī)的相關(guān)資料,需要的朋友可以參考下2015-10-10
Python使用CuPy模塊實(shí)現(xiàn)高效數(shù)值計(jì)算
CuPy是一個(gè)基于Python的GPU加速計(jì)算庫,它提供了與NumPy相似的接口,可以在GPU上進(jìn)行高效的數(shù)值計(jì)算,本文主要介紹一下CuPy的應(yīng)用場景,并給出一些Python代碼案例,需要的可以參考下2024-02-02
Python使用PyMongo4.x操作MongoDB的教程分享
PyMongo是一個(gè)Python編程語言中用于連接和操作MongoDB數(shù)據(jù)庫的庫,它提供了豐富的功能和API,使開發(fā)者能夠在Python中輕松地進(jìn)行MongoDB的數(shù)據(jù)交互和管理,本文給大家總結(jié)了Python如何使用PyMongo4.x操作MongoDB,需要的朋友可以參考下2023-09-09
python實(shí)現(xiàn)不同電腦之間視頻傳輸功能
這篇文章主要介紹了python實(shí)現(xiàn)不同電腦之間視頻傳輸,本文視頻傳輸實(shí)現(xiàn)的前提是確保發(fā)送端和接收端接在同一個(gè)局域網(wǎng)下,分為發(fā)送端和接收端,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06

