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