我一直在抓我的頭在這一個,即使它不應該如此困難......我試圖通過GET查詢字符串傳遞電子郵件不POST我想掩蓋此電子郵件只要電子郵件沒有顯示在網址中,我並不關心是否有好的加密或任何東西......反正我試圖加密它並使用mcrypt_generic進行解密。我遇到的問題是加密時,它會將電子郵件轉換爲各種字符,如:「ñüüŸPsúœœáááagé」我想返回正常的字母數字字符,因此我試圖對此執行hex2bin,並且它運行良好問題是在php5中沒有bin2hex!我嘗試了一些我在網上找到的函數來回復這個改變,它的效果和你所看到的一樣,但是如果你比較if語句中的字符串,他們不匹配,所以當我解密它時,它不會返回我最初通過的值相同。無論如何,我想知道是否有人可以給我一些建議,告訴我如何通過GET傳遞電子郵件,而不必閱讀電子郵件,然後在我的代碼讀取參數時恢復正常。php查詢字符串參數
這是我的加密方法和HEX2BIN函數轉換器:
function encrypt($data)
{
$cipher = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
if (mcrypt_generic_init($cipher, _QRYKEY, _IVKEY) != -1)
{
$encrypted_data = mcrypt_generic($cipher,$data);
mcrypt_generic_deinit($cipher);
}
return bin2hex($encrypted_data);
}
function decrypt($data)
{
$cipher = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
if (mcrypt_generic_init($cipher, _QRYKEY, _IVKEY) != -1)
{
$decrypted_data = mdecrypt_generic($cipher,hex2bin($data));
mcrypt_generic_deinit($cipher);
}
return $decrypted_data;
}
function hex2bin($h)
{
if (!is_string($h)) return null;
$r='';
for($a=0; $a<strlen($h); $a+=2)
{
$r.=chr(hexdec($h{$a}.$h{($a+1)}));
}
return $r;
}
哪裏是你的代碼,你實際上是加密電子郵件和檢索GET字符串? – 2012-02-26 23:08:06
你有沒有試過base64?不是加密,但會完成這項工作。 – rodrigoap 2012-02-26 23:09:29
如果你想要hex2bin和bin2hex的替代品,你可以嘗試玩「pack」和「unpack」http://www.php.net/manual/en/function.pack.php – Optimist 2012-02-26 23:11:39