我正在寻找一种哈希算法,它将输入 16 个字符的字符串,并输出一个不同的 16 个字符的字符串。[无法转换为原始字符串]
我曾考虑采用 MD5 结果并对前 16 个字符进行切片,但我认为这不是解决问题的正确方法,因为它失去了散列的想法。
有什么建议么?平台,如果重要的话,是 Python。
我正在寻找一种哈希算法,它将输入 16 个字符的字符串,并输出一个不同的 16 个字符的字符串。[无法转换为原始字符串]
我曾考虑采用 MD5 结果并对前 16 个字符进行切片,但我认为这不是解决问题的正确方法,因为它失去了散列的想法。
有什么建议么?平台,如果重要的话,是 Python。
实际上,当您决定输入大小需要匹配输出大小时,您已经失去了散列的想法,因为根据维基百科“散列函数是可用于将任意大小的数字数据映射到固定大小的数字数据的任何函数。 "
如果您正在构建信用卡号码标记化系统,只需在检查号码尚未标记化后组成一个随机字符串,检查令牌没有冲突,以 PCI 标准允许的方式保存原始号码(阅读他们,https://www.pcisecuritystandards.org/documents/Tokenization_Guidelines_Info_Supplement.pdf),你很高兴。
如果没有,像 SHA256 或 MD5 这样的切碎散列函数也会在您的系统之外提供可重复性和冲突风险(这是散列的一部分),但这些是否有意义真的取决于您的用例。