Python实现base64编码解码
通过编程了解base64编码解码过程
(纯属无聊之举,且不支持汉字)
a = input("输入(1.base64加密/2.base64解密):")
base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
if a == '1':
s = input("\n输入待加密字符串:")
t1 = ''
d = 0
for a in s:
t1 += '0'*(10 - len(str(bin(ord(a)))))+str(bin(ord(a)))[2:] # 补足8位
if len(t1) % 6 == 2:
d = 2
t1 += '0000'
elif len(t1) % 6 == 4:
d = 1
t1 += '00'
i = 0
t2 = ''
while i < len(t1):
t2 += base64[int(t1[i:i+6],2)]
i += 6
if d == 2:
t2 += '=='
elif d == 1:
t2 += '='
print("\n加密结果:%s"%t2)
elif a == '2':
s = input("\n输入待解密base64码:")
d = 0
if s[-1] == '=' and s[-2] != '=':
d = 1
s = s[:-1]
elif s[-1] == '=' and s[-2] == '=':
d = 2
s = s[:-2]
t1 = ''
for a in s:
t1 += '0'*(8 - len(str(bin(base64.index(a)))))+str(bin(base64.index(a)))[2:] # 补足6位
if d == 1:
t1 = t1[:-2]
elif d == 2:
t1 = t1[:-4]
i = 0
t2 = ''
while i < len(t1):
t2 += chr(int(t1[i:i+8],2))
i += 8
print("\n解密结果:%s"%t2)
附录
使用python的base64库(支持汉字)
import base64
# 加密
mystr = '人生苦短,py是岸'
mystr = base64.b64encode(mystr.encode('utf-8')).decode('ascii')
print(mystr)
# 解密
str_url = base64.b64decode(mystr).decode("utf-8")
print(str_url)