字母表(及其索引)可以在这里找到:
http://www.garykessler.net/library/base64.html
是否有比
alphabet = ['A','B',...]
更短的方式来表示这个字母表?
您可以使用
string
模块
import string
alphabet = string.ascii_uppercase + string.ascii_lowercase + string.digits + '+/'
字符串也是序列。
'ABCD...'
如果你的心相信的话,我们可以称其为简单而简短。
我们可以让base64编码提供其密码字母表。
#!python3
'Retrieve the cipher alphabet from the base64 module.'
import base64
def b64alphabet() -> str:
'''
>>> print(b64alphabet())
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
'''
loose = (range(i, i + 4) for i in range(0, 64, 4)) # ((0, 1, 2, 3), (4, ...), ..., (..., 63))
tight = ((a << 2 | b >> 4, b << 4 | c >> 2, c << 6 | d) for a, b, c, d in loose)
shave = bytes(value.to_bytes(2)[1] for group in tight for value in group)
alpha = base64.b64encode(shave).decode('utf-8')
return alpha
if __name__ == "__main__":
import doctest
doctest.testmod()