[英]PHP Blowfish encrypt / decrypt with database
我在 stackoverflow 上找到了一个加密/解密代码。 是这个:
public function decrypt_blowfish($data,$key){
try{
$iv = pack("H*" , substr($data,0,16));
$x = pack("H*" , substr($data,16));
$res = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $x , MCRYPT_MODE_CBC, $iv);
return $res;
}catch(Exception $ex){
echo $ex->getMessage();
}
}
function encrypt_blowfish($data,$key){
try{
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $data, MCRYPT_MODE_CBC, $iv);
return bin2hex($iv . $crypttext);
}catch(Exception $ex){
echo $ex->getMessage();
}
}
如果我仅使用 php 测试它而没有数据库中的值,它就可以正常工作,但是如果我将它与数据库中的值一起使用,我会得到诸如“Manuel ”之类的东西,而不仅仅是“Manuel”——你能告诉我什么吗?是我的错吗?
尝试通过编码为 64 位并加密字符串并在解密后对其进行解码。 它会工作...
$newDataToEncrypt=base64_encode($data);
在得到解密文本后
$data=base64_decode($decryptData);
尝试一下
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.