我正在處理一個應用程序,而我被卡在這裏。刪除這些額外的字符
我正在做一個產品刪除頁面,其中的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 /) –