哈希字符串,稍后从哈希中检索

时间:2015-07-09 12:39:04

标签: php hash

有没有办法对字符串进行哈希处理,并在以后取消哈希值?

例如,我想散列一个电子邮件地址以创建一个唯一的链接,并在访问该链接时检索该电子邮件地址。

正如您所看到的,它更多地是关于混淆而不是散列。

2 个答案:

答案 0 :(得分:1)

你不能散列和取消散列字符串,但可以使用base64_encode和base64_decode做类似的事情:

<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>

以上示例将输出:

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

你可以解码它:

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

以上示例将输出:

This is an encoded string

与PHP.net手册一样:

http://php.net/manual/en/function.base64-encode.php

http://php.net/manual/en/function.base64-decode.php

答案 1 :(得分:0)

没有不un。 hash是单向加密。为此,您可以在表格中保存电子邮件和哈希,并选择哈希等于某事的电子邮件。

id, email, hash
1   a@b.cc  m3jf9s...


SELECT `email` from `activation_table` WHERE `hash` = 'm3jf9s...';

然后在页面上显示。