Python Base32补全= 代码
学会如何补全Base32
补全原理
base32编码后的字符串,每8字节一组。
例子:(下面的base32编码后的字符串都没有 =
符号)
编码后 | len | 补全几个 = 符号 | 补全后 | 解码后 |
---|---|---|---|---|
NA | 2 | 8 - (2 % 8) = 6 | NA====== | h |
NBSQ | 4 | 8 - (4 % 8) = 4 | NBSQ==== | he |
NBSWY | 5 | 8 - (5 % 8) = 3 | NBSWY=== | hel |
NBSWY3A | 7 | 8 -(7 % 8) == 1 | NBSWY3A= | hell |
NBSWY3DP | 8 | 8 % 8 == 0,所以不需要补 | NBSWY3DP | hello |
代码逻辑:
- 1.先用
len % 8
如果等于0,就说明不需要补=
- 2.
len % 8
不等于0,就说明需要补=
,末尾补全8 - (len % 8)
位=
Python代码如下:
data = ["NA", "NBSQ", "NBSWY", "NBSWY3A", "NBSWY3DP"]
for line in data:
missing_padding = len(line) % 8
if missing_padding != 0:
line += "=" * (8 - missing_padding)
print(line)
运行结果:
NA======
NBSQ====
NBSWY===
NBSWY3A=
NBSWY3DP