我想将id(例如客户ID)编码为唯一字符串(字母/数字)以隐藏id,同样我希望保持编码字符串始终具有相同的长度,例如16个字符。它也应该是可解码的。
例如: id = 1 编码id = abcd12345e6f7g80
id = 100000 编码id = edfgj129j5e6j3gk9
答案 0 :(得分:0)
我有这个解决方案,我不确定它是否是最好的方法,但它能完成这项工作:
您可以使用hash()获取id
的统一长度的唯一字符串
$unique = hash('ripemd160', '1'); //c47907abd2a80492ca9388b05c0e382518ff3960
$unique = hash('ripemd160', '1000'); //1bf90630418c99622abb593907e904995196693f
然后将id
及其唯一哈希存储在您可以随时查询的表中。这将用于反转哈希值。
+-------+----------------------------------------+
| id | hash |
+-------+----------------------------------------+
| 1 |c47907abd2a80492ca9388b05c0e382518ff3960|
| .. |... |
+-------+----------------------------------------+