【问题标题】:RNCryptor iOS PHP Fatal error: Uncaught exception 'Exception' with message 'Unsupported schema version 211'RNCryptor iOS PHP 致命错误:未捕获的异常“异常”和消息“不支持的架构版本 211”
【发布时间】:2015-02-16 14:25:23
【问题描述】:

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

这是我的 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 错误日志中收到上述错误。

任何想法将不胜感激。

【问题讨论】:

    标签: php ios objective-c encryption rncryptor


    【解决方案1】:

    哇 - 所以过去几天我一直……直到我决定在我的问题中包含 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) - 这可能仍然有帮助。谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      相关资源
      最近更新 更多