我正在处理一个应用程序,而我被卡在这里。删除这些额外的字符
我正在做一个产品删除页面,其中的id在URL中传递,以便我可以搜索数据库并选择特定的记录。 由于传递身份证不是一个好主意,所以我在散列中加密ID然后传递。但是由于散列之间有一些空格,所以当我尝试在我的应用程序中使用它时。在散列中添加了外部空格字符以填充空格。
这是我的加密功能: -
function getHash($recordid)
{
global $db;
$key_value="[email protected]@";
$plain_text=$recordid;
$encrypted_text = mcrypt_ecb(MCRYPT_DES, $key_value, $plain_text, MCRYPT_ENCRYPT);
return $encrypted_text;
}
这里就是我得到输出$ plain_text = 1时,我不会在URL通过,并简单地打印出来。
ÑÛo‡Ó‰-7
但是,如果我通过URL传递给它,它就会被转换成这样: -
%D1%DBo%87%D3%89-7
所以肯定当我将其解密,我不会得到正确的结果。 解密后有没有什么方法可以得到原始值(本例中为1),还是我完全可以使用不同的解密,加密函数,以便我摆脱这个问题?
谢谢。
对不起,但不应该为此操作需要授权?默默无闻的安全性很少是一种好方法。 – raina77ow
这肯定需要授权。 用户需要登录,我有一个功能,检查具有特定ID的产品是否映射到用户的帐户。 但我也想通过解密id来添加另一个安全层。 – Ankur
您可以使用urlencode($ encrypted_text),以便转换为可转发编码而不会破坏实际值,然后使用urldecode($ encrypted_text)在页面上获取您的散列:) [测试此处](http://meyerweb.com)/eric/tools/dencoder /) –