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())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值