MD5 URL中的id并使用PHP获取其他页面的id

时间:2012-11-07 01:52:32

标签: php security

假设我有以下代码:

<td><a href="view_edit_form.php?id=<?php echo md5($row[0]);?>">Edit</a></td>

在页面view_edit_form.php中,我使用此代码$ID = $_GET['id'];

获取了ID

问题

我无法得到id,如果我md5它就像这样。任何人请帮助我,谢谢。

3 个答案:

答案 0 :(得分:2)

如果您只是想隐藏ID,我建议您使用两个可以在您的网址前后放置的代码。

$before_code = "8292273";
$after_code = "9388347";

如果你在你的id中使用了字符,那么混合几个

我假设$ row [0]是你的身份

<a href="view_edit_form.php?id=<?php echo $before_code.$row[0].$after_code; ?>">
  Edit
</a>

如果您将前后代码设置为设定的长度,您可以随意更改它们,并使用substr从开头和结尾删除设定数量的字符以获取您的ID。

如果您使用设置代码,则可以使用str_replacepreg_replace删除留下您身份的代码。

只要你保留自己的代码,大多数人都无法找到id,除非是那个人身份证,他们已经知道它是什么......这会浪费时间......

答案 1 :(得分:0)

使用mcrypt_encrypt()mcrypt_decrypt()加密和解密数据。

答案 2 :(得分:0)

除非将md5存储在$ID的其他位置并进行检索,否则无法获取md5哈希值。 (<td><a href="view_edit_form.php?id=<?php echo $row['id_hash'];?>">Edit</a></td> 是一种单向散列算法:请参阅here)。

你的source.php可能需要看起来像:

<td><a href="view_edit_form.php?id=79054025255fb1a26e4bc422aef54eb4">Edit</a></td>

您呈现的HTML可能如下所示:

source.php

在您的 view_edit_form.php 文件AND $ID 中,您需要调用您的数据库(这通常不会存储在数据库)根据所讨论的md5哈希检索哈希值(或{{1}})。

使用不同的哈希算法可能会更好,但md5通常可用于基本安全/模糊处理 - 但这些天加密密码。它几乎取决于的含义。

希望这会有所帮助。