我需要创建一个简单的散列方法来传递URL中的一些数据。它不需要非常安全,对大多数人来说不应该是显而易见的。
散列需要包含发送方的数字ID和接收方的ID,我应该能够在读取附加的散列后解码数据。
有什么想法吗?我希望哈希尽可能短,只是因为这个网址是通过IM,电子邮件等共享的。
答案 0 :(得分:7)
哈希只是一种方式。如果要解密它,则必须对其进行加密。使用mcrypt尝试one of these。
对于非安全内容,您可以尝试base64_encode,您还可以base_convert每个数字ID从10到36位左右。将数字乘以秘密常数也可能有所帮助。
$obscurity = base_convert($recipientId * 42, 10, 36) . ':' . base_convert($senderId * 42, 10, 36)
答案 1 :(得分:2)
尝试base64编码/解码。与apache选项“Multiviews”或apache mod_rewrite放在一起,会使你的网址看起来像:
http://mysite.com/messages/[encoded string here]
答案 2 :(得分:2)
base64绝对应该可以解决这个问题。
请注意,这不是'哈希',哈希通常意味着单向加密。
$senderId = 1234;
$recipientId = 5678;
$myString = $senderId . ":" . $recipientId;
echo base64_encode($myString);
答案 3 :(得分:1)
您可以使用加密,如@OIS所述。
或者您可以使用哈希并将哈希值存储在键入发件人ID和收件人ID的数据库中。 PHP内置了md5()
和sha1()
。