我的数据库中的每个用户对象都有一个增量 ID(1、2、3,...)。查看用户配置文件的 URL 包含用户对象的 ID;例如http://www.example.com/users/1。这样每个人都可以看到网站上有多少用户,用户群的增长速度等等。我不想泄露这些信息。
我想将增量 ID 转换为 Base58 格式的固定长度字符串,因此 URL 看起来像http://www.example.com/users/2WNrx2jq184另外,我需要将字符串转换回原身份证。逆向函数应该不容易逆向工程。
我为此目的找到的最好的 Python 代码是https://github.com/JordanReiter/django-id-obfuscator。这非常好,但在某些情况下,它会添加一个0
和/或.
字符,这会导致字符串不在 Base58 中且长度不固定。(参见utils.py第 24 和 29 行。)
如何改进 django-id-obfuscator 以生成固定长度的 base58 混淆 ID,或者如何在 Python 中创建此类混淆 ID?