我需要用PHP或MySQL解密用MS SQL ENCRYPTBYPASSPHRASE加密的字符串。
我已经尝试过以各种方式使用mcrypt,只返回像' h | niIW q;ɵJ i 7 '这样的字符串。还尝试了不同的块模式,如“ecb”,“cbc”,“cfb”,“ofb”,“nofb”或“stream”。
我也尝试在MySQL中使用DES_DECRYPT,它只返回与输入相同的内容。
我试过的PHP函数:
public function Decrypt($data, $secret){
//Generate a key from a hash
$key = md5(utf8_encode($secret), true);
//Take first 8 bytes of $key and append them to the end of $key.
$key .= substr($key, 0, 8);
$data = base64_decode($data);
$data = mcrypt_decrypt('tripledes', $key, $data, 'ecb');
$block = mcrypt_get_block_size('tripledes', 'ecb');
$len = strlen($data);
$pad = ord($data[$len-1]);
return substr($data, 0, strlen($data) - $pad);
}
MySQL我试过:
SELECT DES_DECRYPT( 'string', 'key:mykey' ) AS decrypt
我希望你能帮我找到解决这个问题的方法。
提前致谢。