RNCryptor iOS PHP 致命错误:未捕获的异常“异常”,消息为“不支持的架构版本 211”


RNCryptor iOS PHP Fatal error: Uncaught exception 'Exception' with message 'Unsupported schema version 211'

找不到太多关于此错误的文档...我认为这与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/等,但我猜这些版本本质上不太安全,因为它们较旧。有人有什么想法吗?

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

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

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

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

任何想法将不胜感激。

哇 - 所以过去几天我花了...一直到我决定在我的问题中包含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];

它实际上仍然没有按照我想要的方式工作......但这解决了该错误,以防有人特别遇到此问题。可能不得不问另一个问题,我现在正在处理什么......但我想如果你想对这个过程发表评论(带有 RNCryptor 的 iOS 到 PHP( - 这可能仍然有帮助。谢谢。