gpt4 book ai didi

php - iOS中的RNCryptor加密和PHP中的解密

转载 作者:行者123 更新时间:2023-12-01 16:37:00 24 4
gpt4 key购买 nike

我一直在尝试使用RNCryptor在iOS中加密字符串,并让应用将加密后的字符串发布到服务器,该服务器将在PHP中解密该字符串。

直到PHP脚本返回空字符串为止,一切似乎都可以正常工作(没有错误消息)。

我认为问题出在iOS代码中,因为当我尝试解密示例decrypt.php中的字符串时,它工作正常。

iOS:

NSString *key = @"myPassword";
NSString *string = @"Secret String";
NSData *plain = [string dataUsingEncoding:NSUTF8StringEncoding];
NSData *cipherData = [RNEncryptor encryptData:plain withSettings:kRNCryptorAES256Settings password:key error:&error];
NSString *cipherString = [[NSString alloc] initWithData:[cipherData base64EncodedDataWithOptions:0] encoding:NSUTF8StringEncoding];

然后我将cipherString发布到以下PHP脚本中

PHP:
require 'autoload.php';
$password = "myPassword";
$base64Encrypted = $_POST['data'];
$cryptor = new \RNCryptor\Decryptor();
$plaintext = $cryptor->decrypt($base64Encrypted, $password);
echo $plaintext;

感谢所有帮助。谢谢。

编辑:我从 this discussion中学到,当我从 cipherString直接输入Base64到PHP时,无需POST,它就可以正常工作。有什么想法吗?

最佳答案

更换

$cryptor = new \RNCryptor\Decryptor();

通过
$cryptor = new \RNCryptor\RNCryptor\Decryptor;

关于php - iOS中的RNCryptor加密和PHP中的解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27351192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com