小编jsd*_*bai的帖子

如何在PHP中解密由SQL Server的EncryptByPassPhrase()加密的字符串?

我有一个加密的字符串及其密钥,它是通过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)

php sql t-sql sql-server encryption

5
推荐指数
1
解决办法
521
查看次数

标签 统计

encryption ×1

php ×1

sql ×1

sql-server ×1

t-sql ×1