Python 解碼Base64 得到碼流格式文本

# coding:utf8
import base64


def BaseToFlow():
    while True:
        str = input("Please input src: ")
        flag = input("Please input Decode - 1 or Encode - 2: ")
        if str == "":
            str = "ApIAGBcEAAAEBO6x3nLykEEhjWMX1wHs"
        if flag == "":
            flag = "1"
        if flag == "1":
            print("Decoding ...")
            dst = base64.b64decode(str)
            # print(type(dst))
            # <class 'bytes'>
            # print(dst)
            # b'\x02\x92\x00\x18\x17\x04\x00\x00\x04\x04\xee\xb1\xder\xf2\x90A!\x8dc\x17\xd7\x01\xec'
            # print(dst.hex()) --去掉\0x前綴 得到一個字符串
            # 02920018170400000404eeb1de72f29041218d6317d701ec
            HexFormat(dst.hex())
        elif flag == "2":
            print("Encoding ...")
            dst = base64.b64encode(str)
            print(dst)


def HexFormat(str):
    """
    :param str: 16進制連續字符串
    :return:  碼流格式的16進制串
    """
    i = 1
    str2 = ""
    while (i <= len(str)):
        str2 = str2 + str[i - 1] + str[i] + " "
        if (i + 1) / 2 == 8:
            str2 = str2 + " "
        elif (i + 1) / 2 == 16:
            str2 = str2 + "\n"
        i = i + 2
    print(str2)


if __name__ == '__main__':
    BaseToFlow()

結果:

Please input src: 
Please input Decode - 1 or Encode - 2: 
Decoding ...
02 92 00 18 17 04 00 00  04 04 ee b1 de 72 f2 90 
41 21 8d 63 17 d7 01 ec 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章