有没有办法对字符串进行哈希处理,并在以后取消哈希值?
例如,我想散列一个电子邮件地址以创建一个唯一的链接,并在访问该链接时检索该电子邮件地址。
正如您所看到的,它更多地是关于混淆而不是散列。
答案 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手册一样:
答案 1 :(得分:0)
没有不un。 hash是单向加密。为此,您可以在表格中保存电子邮件和哈希,并选择哈希等于某事的电子邮件。
id, email, hash
1 a@b.cc m3jf9s...
SELECT `email` from `activation_table` WHERE `hash` = 'm3jf9s...';
然后在页面上显示。