Php 加密和解密消息

Php 加密和解密消息,php,Php,这是新PHP的良好实现吗 private function Encrypt_Decrypt($key, $message, $encrypt = true) { if (!isset($key) || !isset($message)) { throw new Exception("Invalid Parameters"); } $iv = md5(md5($key)); $output = ""; $td = mcrypt_mo

这是新PHP的良好实现吗

private function Encrypt_Decrypt($key, $message, $encrypt = true)
{
    if (!isset($key) || !isset($message))
    {
        throw new Exception("Invalid Parameters");
    }

    $iv = md5(md5($key));
    $output = "";
    $td = mcrypt_module_open("blowfish", "", "cbc", "");

    mcrypt_generic_init($td, $key, $iv);
    switch ($encrypt)
    {
        case true:{
            $output = mcrypt_generic($td, $message);
            break;
        }

        case false:{
            $output = mdecrypt_generic($td, $message);
            break;
        }
    }
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    return $output;
}

如果您以这种方式使用Mcrypt,您也可以直接使用
Mcrypt\u encrypt()
Mcrypt\u decrypt()
;另外,您不应该真正使用
MCRYPT\u RAND
。另请参见和。@Jack更新了代码…最好将两个函数分开;将两个相反的流合并到同一个函数中有点奇怪。而且,IV不应该依赖于使用的键。