我一直在抓我的头在这一个,即使它不应该如此困难......我试图通过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