public function decrypt($str, $key){
//AES, 256 ECB
$data = rtrim(
mcrypt_decrypt(
MCRYPT_RIJNDAEL_256,
$key,
base64_decode($str),
MCRYPT_MODE_ECB,
mcrypt_create_iv(
mcrypt_get_iv_size(
MCRYPT_RIJNDAEL_256,
MCRYPT_MODE_ECB
),
MCRYPT_RAND
)
), "\0"
);
return $data;
}
的$ str是從iOS應用程序加密的字符串,他使用的字符集是NSUTF8StringEncoding
和使用方法AES-256-ECB-PKCS7Padding
和BASE64輸出。PHP-AES-256-ECB解密亂碼
加密,然後
$ STR->42z7t5nzwvbk14gbemc9
$鍵 - >gxssh2016
加密後在iOS應用
$ STR->D2k5t33l+HD3snFTU+gNYlCH/DQ37WO6I6nUYbGTDKc
通知:我使用的AES在線工具來解密此字符串可以得到正確的結果:42z7t5nzwvbk14gbemc9
但是,用我的功能解密此$海峽輸出: x�Z����®(t�sڞ�<�^�q�P
`
哪有我解密到42z7t5nzwvbk14gbemc9
在PHP?
您可以添加iOS加密代碼嗎? – UditS
<關於不使用ECB的標準註釋,無論如何都被忽略> –
[<關於mcrypt自2007年以來被放棄的標準註釋>](https://paragonie.com/blog/2015/05/if-you-re-typing- word-mcrypt-into-your-code-you-re-doing-it-wrong) – duskwuff