如何将mcrypt PHP转换为Python

2024-05-14 00:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将其转换为Python?我困惑的是随机vi

菲律宾比索

public function fnEncrypt($sValue, $sSecretKey)
    {
    $sValue =  $this->pkcs5_pad($sValue, mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, 'ecb'));
      return rtrim(
            base64_encode(
                mcrypt_encrypt(
                    MCRYPT_RIJNDAEL_128,
                    $sSecretKey, $sValue,
                    MCRYPT_MODE_ECB,
                    mcrypt_create_iv(
                        mcrypt_get_iv_size(
                            MCRYPT_RIJNDAEL_128,
                            MCRYPT_MODE_ECB
                        ),
                        MCRYPT_RAND)
                    )
                ), "\0"
            );
    }

更新:

这正是它应该做的!在

Python

^{pr2}$

Tags: sizegetmodefunctionpublicvi比索mcrypt
1条回答
网友
1楼 · 发布于 2024-05-14 00:22:11
  • PHP代码使用的是RIJNDAEL_128即AES,Python代码使用的是DES,它们都需要使用相同的加密算法才能进行互操作。

  • PHP代码使用ECB模式,而Python代码使用CBC模式,它们都需要使用相同的模式才能进行互操作。

  • PHP代码mcrypt(不应该使用)使用非标准的空填充,Python代码使用的是标准的PKCS#5填充,它们都需要使用相同的填充来进行互操作。

注1:ECB模式不使用IV。如果为ECB模式提供IV,则忽略该IV。在

注意2:不要使用ECB模式,它不安全,请参见ECB mode,向下滚动到企鹅。取而代之的是使用CBC模式的随机IV,只需在加密数据前面加上IV就可以用于解密,它不需要保密。在

相关问题 更多 >