我写了个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()