繁体   English   中英

来自iOS Swift的PHP AES256 PKCS7解密

[英]PHP AES256 PKCS7 decryption from iOS Swift

我正在尝试在Swift中加密字符串,然后在PHP中解密字符串。 我从SO那里获得了一些很好的帮助,希望有人能够再次提供帮助。 这是我试图在PHP中用于解密的代码。

$key = "test";
$pass = "bLOKONASw8tE2cki5QhkcA==";
$iv = "1234567890123456";   

$base64encoded_ciphertext = $pass;
echo "pass: ".$pass;

$res_non = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($base64encoded_ciphertext), MCRYPT_MODE_CBC, $iv);

$decrypted = $res_non;
echo " 1: ".$decrypted;
$dec_s2 = strlen($decrypted);
echo " 2: ".$dec_s2;
$padding = ord($decrypted[$dec_s2-1]);
echo " padding: ".$padding;
$decrypted = substr($decrypted, 0, -$padding);
echo " Decrypted: ".$decrypted;

该字符串在Swift中进行了加密,在将其发送到服务器之前,我先对其进行了base64编码。

我没有收到错误,但似乎结果“已解密”值为空。
我在Swift中有一个测试解密功能,可以返回正确的输出。

Key:<74657374 73747269 6e67>
Iv:<31323334 35363738 39303132 33343536>
Message: <74657374 6d657373 616765>
ivLength    = 16, ivData    = <31323334 35363738 39303132 33343536>
encryptedData: <6cb38a38 d012c3cb 44d9c922 e5086470>
base64cryptString = bLOKONASw8tE2cki5QhkcA==

如果有人可以帮助我弄清楚我要去哪里,那将是正确的选择

在AES-CBC模式下,初始化向量的长度必须为16个字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM