Web UI に表示したいエンティティのデータベースがあります。エンティティのキーから生成できる短い英数字の文字列が必要です。私は、base32 が適切な解決策であるという結論に達しました (特に、キーの大文字と小文字を区別しないようにして、口頭で読み取れるようにしたかったなどの理由で)。以下よりも短い、またはスペース効率の良いものはありますか?
import base64
def b32urlencode(x):
return base64.b32encode(x).strip('=').lower()
def b32urldecode(x):
return base64.b32decode(x + ('=' * (8 - (len(x) % 8))))