base64解码 python实现

最近刚学python,拿base64的实现开了一个头,自己写了一段base64实现的代码,本来就写好了,但是解码出来总是乱码,但是不报任何错误,看了半天才看出来,把大写的字母放在了后面……无语,,想锤死自己,来纪念一下,多多指教
这个函数的输入不是字节类型的,是字符类型的,已编码的字符串可以直接放进去,但是暂时只能解码英文

base64的解码

import base64
import string

base64_char=string.ascii_uppercase + string.ascii_lowercase + string.digits + ‘+/’

def localdecode(edstring):
while edstring[len(edstring)-1] == ‘=’:
edstring=edstring.replace(‘=’,”)
print(edstring)
firstring=[ ‘{0:0>6}’.format(bin(base64_char.index(i)).replace(‘0b’,”)) for i in edstring]
print(firstring)
secstring=”.join(firstring)
print(secstring)
num=len(secstring)//8
firlist=[secstring[y*8:y*8+8] for y in range(num)]
print(firlist)
seclist=[chr(int(firlist[y],2)) for y in range(num)]
print(seclist)
result=”.join(seclist)
return result

if name ==’main‘:
s=input(“请输入已编码过的base64字符串”)
print(“local program:”,localdecode(s))
print(“base64解码结果:”,base64.b64decode(s.encode()).decode())

猜你喜欢

转载自blog.csdn.net/biziwaiwai/article/details/78829296