0

我创建了一个测验应用程序,它通过电子邮件将结果发送给用户。我想在 url 中包含一个链接,用户可以单击该链接并查看其结果的细分我希望 url 看起来像这样:

http://www.mysite.com/quiz/view/32k4k2u4vxcv88xcv8cv0x98c9v7c7v8887cv

显然不能只散列易于逆向工程的 id cos,考虑到我必须执行 sql 查询来比较散列值,下一个最好、最简单的方法是什么?

4

2 回答 2

1

您可以只为每个实例分配一个GUID,这应该是不可能进行逆向工程的(因为它不依赖于记录),并且是唯一的。你在那里的东西看起来也有点像 GUID(即它看起来是随机的并且不可读)。

于 2009-08-03T07:58:29.843 回答
1

您可以使用 SALT 来获得更崇高的 sengineering 感知哈希。

define("SALT", "some random string .fsddf09asf9sd0-f9sd0-f9sd-0f9s0a-9f-");    
$hash = md5(SALT.$user_id);

稍后,当用户尝试访问该 url 时,首先使用 SALT 再次生成散列,并与提供的 url 中的散列进行比较。

请记住 md5 已经破坏了算法。使用 SHA 哈希算法中的一些。

问候

于 2009-08-03T07:59:09.997 回答