在PHP中需要一个简单的哈希

时间:2009-04-03 22:39:02

标签: php encryption

我需要创建一个简单的散列方法来传递URL中的一些数据。它不需要非常安全,对大多数人来说不应该是显而易见的。

散列需要包含发送方的数字ID和接收方的ID,我应该能够在读取附加的散列后解码数据。

有什么想法吗?我希望哈希尽可能短,只是因为这个网址是通过IM,电子邮件等共享的。

4 个答案:

答案 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()