簡體   English   中英

將BASE64字符串轉換為BASE16(HEX)字符串?

[英]Converting a BASE64 string to a BASE16(HEX) string?

嗨,我正在嘗試編寫一個程序,以將BASE64字符串轉換為BASE16(HEX)字符串。

這是一個例子:

     BASE64:   Ba7+Kj3N
HEXADECIMAL:   05 ae fe 2a 3d cd
     BINARY:   00000101 10101110 11111110 00101010 00111101 11001101
    DECIMAL:   5 174 254 42 61 205

從BASE64轉換為HEXIDECIMAL的邏輯是什么?
為什么將十進制表示形式拆分?
二進制表示法如何分成6個部分?

只需要數學,我只能處理的代碼使我感到困惑。 謝謝 :)

一次讀取4個基本字符,因為4個基本字符變為3個字節:

'Ba7+', 'Kj3N'

解碼base64的每個字符。 我只是在Wikipedia上查詢過

[1, 26, 59, 62], [10, 35, 55, 13]

將每個組中的數字分別向左移動18、12、6和0:

>>> def pack(a, b, c, d): return hex((a << 18) + (b << 12) + (c << 6) + d)
>>> pack(1, 26, 59, 62)
'0x5aefe'
>>> pack(10, 35, 55, 13)
'0x2a3dcd'

然后,如果您想自己轉換為十六進制,請將它們向右移動4、8,...,24、28,以剝離每個半字節並將其轉換為從0到f的數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM