Discuss / Python / .

落汐21

#1 Created at ... [Delete] [Delete and Lock User]

import base64

def safe_base64_decode(s): n=len(s)%4 str=s+b'='*n return base64.b64decode(str)

为什么不是n=4-len(s)%4呢?

乞丐200609

#3 Created at ... [Delete] [Delete and Lock User]

为什么不是n=4-len(s)%4呢?

这个问题问的是对的,但是你也没有发现一个问题,就是无论我是几个字节的,我想补全3的倍数,要么加1,要么加2 那么我加密出来的base64 要么加一个= 要么加两个= 所以base64的长度在对4求余数以后 要么是2(加2个=就是4的倍数) 要么是3 (加1个=就是4的倍数), base64解码的时候 等号的数量多于2个 就能成功解码 所以他这么写,虽然思路有点问题,但是也能成功解码


  • 1

Reply