1
我有一个我想要在网络用户界面中显示的实体数据库。我想要一个简短的字母数字字符串,我可以从实体的密钥中生成。我得出的结论是base32是一个很好的解决方案(特别是因为我想让这些密钥不区分大小写,所以可以用口头方式阅读等)。是否有比以下更短或更高的空间效率?网址的Python密钥生成策略
import base64
def b32urlencode(x):
return base64.b32encode(x).strip('=').lower()
def b32urldecode(x):
return base64.b32decode(x + ('=' * (8 - (len(x) % 8))))
为什么Base32而不是Base64?后者更紧凑,只需稍作调整即可成为有效的URL段落。 –
请参见[将UUID 32个字符的十六进制字符串转换为“YouTube风格”简称,并返回](http://stackoverflow.com/a/12270917)。 –
这非常有趣(我正在看它)。我选择base32是因为我希望它不区分大小写(例如,在需要通过电话阅读时)。 – Aaron