php id编码与任何给定的id具有完全相同的字符长度

时间:2018-03-02 14:01:41

标签: php encoding character-encoding cryptography

我想将id(例如客户ID)编码为唯一字符串(字母/数字)以隐藏id,同样我希望保持编码字符串始终具有相同的长度,例如16个字符。它也应该是可解码的。

例如: id = 1 编码id = abcd12345e6f7g80

id = 100000 编码id = edfgj129j5e6j3gk9

1 个答案:

答案 0 :(得分:0)

我有这个解决方案,我不确定它是否是最好的方法,但它能完成这项工作:

您可以使用hash()获取id的统一长度的唯一字符串

$unique = hash('ripemd160', '1'); //c47907abd2a80492ca9388b05c0e382518ff3960
$unique = hash('ripemd160', '1000'); //1bf90630418c99622abb593907e904995196693f

然后将id及其唯一哈希存储在您可以随时查询的表中。这将用于反转哈希值。

+-------+----------------------------------------+
|  id   |   hash                                 |
+-------+----------------------------------------+
|  1    |c47907abd2a80492ca9388b05c0e382518ff3960|
| ..    |...                                     |
+-------+----------------------------------------+