Python学习笔记: Base64编解码工具

我写了个base64编解码程序,考虑到在标准base64下,URL编辑器会将改变原有格式

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。(参考base64_百度百科)

因此在此框架进行改动,部分代码参考互联网

"""
This program is used to encode and decode base64 strings in python
Author: EricJ 辉仔
Date: 20210318
References: https://www.base64encoder.io/python/,
            https://www.base64decoder.io/python/
"""
import base64

def encoded():
    data = input("Base64 Encode: ")
    # Standard Base64 Encoding
    encodedBytes = base64.b64encode(data.encode("utf-8"))
    encodedStr = str(encodedBytes, "utf-8")
    print("EncodedStr:", encodedStr)


def decoded():
    encodedStr = input("Base64 Decode: ")
    # Standard Base64 Decoding
    decodedBytes = base64.b64decode(encodedStr)
    decodedStr = str(decodedBytes, "utf-8")

    print("decodedStr:", decodedStr)


def urlencode():
    data = input("Base64 Encode: ")

    # URL and Filename Safe Base64 Encoding
    urlSafeEncodedBytes = base64.urlsafe_b64encode(data.encode("utf-8"))
    urlSafeEncodedStr = str(urlSafeEncodedBytes, "utf-8")

    print("EncodedStr:", urlSafeEncodedStr)


def urldecode():
    encodedStr = input("Base64 Decode: ")

    # Url Safe Base64 Decoding
    decodedBytes = base64.urlsafe_b64decode(encodedStr)
    decodedStr = str(decodedBytes, "utf-8")

    print("DecodedStr:", decodedStr)


def main():
    # menu
    choice = int(input("standard encoder choose 1, standard decoder choose 2, "
                       "\nurl encoder choose 3, url decoder choose 4, "
                       "\nquit choose 5: "))
    while choice > 0 or choice < 5:
        if choice == 1:
            encoded()
            input("Press Enter continue... ")
            choice = int(input("standard encoder choose 1, standard decoder choose 2, "
                               "\nurl encoder choose 3, url decoder choose 4, "
                               "\nquit choose 5: "))
        elif choice == 2:
            decoded()
            input("Press Enter continue... ")
            choice = int(input("standard encoder choose 1, standard decoder choose 2, "
                               "\nurl encoder choose 3, url decoder choose 4, "
                               "\nquit choose 5: "))
        elif choice == 3:
            urlencode()
            input("Press Enter continue... ")
            choice = int(input("standard encoder choose 1, standard decoder choose 2, "
                               "\nurl encoder choose 3, url decoder choose 4, "
                               "\nquit choose 5: "))
        elif choice == 4:
            urldecode()
            input("Press Enter continue... ")
            choice = int(input("standard encoder choose 1, standard decoder choose 2, "
                               "\nurl encoder choose 3, url decoder choose 4, "
                               "\nquit choose 5: "))
        elif choice == 5:
            quit()
        else:
            choice = int(input("standard encoder choose 1, standard decoder choose 2, "
                               "\nurl encoder choose 3, url decoder choose 4, "
                               "\nquit choose 5: "))


main()

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.