对加密算法不熟悉,只知道一些简单的概念,比如 hash256 这种属于单向加密,内容被加密完了是无法逆向解密,只能将两次加密结果进行比对,如果一致就说明被加密内容一致。
最近有个需求,就是把用户电话进行单向加密,加密后的字符长度为 3 个字符(比如 1c8 )并且只能包含数字 0 到 9 和小写字母 a 到 z 。强调下,单向加密即可,也就是说不需要解密,只要保证不同的内容加密结果不一样就可以。
于是我就找到 hashlib 下面有 blake2b:
from hashlib import blake2b
h = blake2b(digest_size=20)
h.update(b'Replacing SHA1 with the more secure function')
h.hexdigest()
来源于: https://docs.python.org/3/library/hashlib.html#using-different-digest-sizes
这个似乎可以实现我的要求。但是我有个疑问,解密结果才 3 个字符长度,会不会太少,导致不同的内容加密结果一样的情况出现呢?哪位老哥能帮忙解答下,或者提供一些关键词让我进一步学习。先行谢过🙏
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.