如何将其转换为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}$
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就可以用于解密,它不需要保密。在
相关问题 更多 >
编程相关推荐