我有一个加密的字符串及其密钥,它是通过SQL Server使用“ EncryptByPassPhrase”创建的,如何在PHP中对其进行解密?
我已经阅读了“ EncryptByPassPhrase”的文档,该文档指出这是128长度的三重DES加密。我尝试对PHP进行3DES解密,但未返回预期的输出。
MS SQL中的加密是通过
declare @encrypt varbinary(200)
select @encrypt = EncryptByPassPhrase('key', 'taskseq=10000&amt=200.5' )
select @encrypt
Run Code Online (Sandbox Code Playgroud)
我在PHP中将其解密如下:
function decryptECB($encrypted, $key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
// decrypting
$stringText = mcrypt_decrypt(MCRYPT_3DES, $key, $encrypted,
MCRYPT_MODE_ECB, $iv);
return $stringText;
}
Run Code Online (Sandbox Code Playgroud)