0

找不到有关此错误的太多文档...我认为这与 RNCryptor 的冲突版本有关...iOS 的 RNCryptor 版本与我的服务器端 RNCryptor-php 版本冲突...我认为。

这是错误的所有输出:

[Wed Dec 17 16:56:00 2014] [error] [client 192.168.1.3] PHP Fatal error: Uncaught exception 'Exception' with message 'Unsupported schema version 211' in /Library/WebServer/Documents/lib/RNCryptor/Cryptor.php:70\nStack trace:\n#0 /Library/WebServer/Documents/lib/RNCryptor/Decryptor.php(66): RNCryptor\\Cryptor->_configureSettings(211)\n#1 /Library/WebServer/Documents/lib/RNCryptor/Decryptor.php(49): RNCryptor\\Decryptor->_parseHeaders('\\xD3}5\\xEBN\\xFB\\xD1\\xDD\\xBA\\xF5\\xD6\\xF6s\\xB7:...')\n#2 /Library/WebServer/Documents/lib/RNCryptor/Decryptor.php(22): RNCryptor\\Decryptor->_unpackEncryptedBase64Data('<03016077 0d269...')\n#3 /Library/WebServer/Documents/accessy/index.php(120): RNCryptor\\Decryptor->decrypt('<03016077 0d269...', 'AwEOM//0tNskVvC...')\n#4 /Library/WebServer/Documents/accessy/index.php(189): Auth->auth('AwEOM//0tNskVvC...', false)\n#5 {main}\n thrown in /Library/WebServer/Documents/lib/RNCryptor/Cryptor.php on line 70

我希望有人可以看看那个,然后告诉我什么是错的。我在 iOS 端尝试过 v2.0 和 v2.1,看起来只有一个版本的 RNCryptor-php ......我想我可以尝试 v1.0/etc。但我猜这些版本本质上不太安全,因为它们较旧。有人有想法么?

这是我的 RNCryptor-php 由于某种原因似乎无法处理的 iOS 加密代码:

NSData *what1 = [emailcurrent dataUsingEncoding:NSUTF8StringEncoding];

NSError *errory5;

NSData *useremaily = [RNEncryptor encryptData:what1 withSettings:kRNCryptorAES256Settings password:@"xxxxx" error:&errory5];`

实际上我仍然不确定一件事,我尝试了一些不同的事情......但截至目前......我正在将useremaily请求(不将其转换为字符串或任何内容)作为POST数据发送。 ..我认为这是正确的。

然后我以我认为应该的方式使用 NSURLConnection,连接发生并执行,但我总是在 PHP 错误日志中得到上述错误。

任何想法将不胜感激。

4

1 回答 1

0

哇 - 所以过去几天我花了......一直到我决定在我的问题中包含 NSURLConnection 代码。原来是这样的:

NSString *post = [NSString stringWithFormat:@"email=%@", useremaily];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://192.168.1.10/accessy/index.php"]]];

[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];`

我认为把一切都搞砸的那条线是:

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

我将其更改为:

NSData *postData = [[NSData alloc] initWithBase64EncodedString:post options:0];

它实际上仍然无法按照我想要的方式工作......但这解决了这个错误,以防有人特别遇到这个问题。可能不得不就我现在正在处理的问题提出另一个问题......但我想如果你想评论一般的过程(iOS 到 PHP 与 RNCryptor) - 这可能仍然有帮助。谢谢。

于 2014-12-17T22:20:19.257 回答