繁体   English   中英

PHP Blowfish 使用数据库加密/解密

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM