NSXMLparser从长字符串中提取特定值。(情侣问题。)

时间:2011-09-14 14:55:04

标签: iphone objective-c encryption nsxmlparser

对不起,如果这是以前被问过的问题,如果有的话,请指出正确的答案。(我找不到答案。)

我的问题:

我有一个来自NSUrl的XML我需要能够适当地解析它, 我将收到其中的Field Perpetrators的回复,例如()。

我是否可以将其设置为搜索字典中的关键字并从XML中解析它们? 如果是这样,那么学习它的好开始是什么?

还可以保存响应并加密它们,直到我需要在另一个视图中使用它们吗? 如果是这样,在IOS方面加密的最佳方法是什么?

任何正确方向的导游都很精彩!! 我不是要求别人回答所有人,但这会很好,谢谢!

1 个答案:

答案 0 :(得分:1)

方法- (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:(NSError **)errorPtrNSDataWritingFileProtection选项可以为您加密数据,但您无法控制它们的加密密钥。

对于加密使用CommonCrypro(iOS的一部分),aes128,cbc。但真正的问题是你如何安全地保存加密密钥?

这是一种加密/解密方法:

+ (NSData *)doCipher:(NSData *)dataIn
                  iv:(NSData *)iv
                 key:(NSData *)symmetricKey
             context:(CCOperation)encryptOrDecrypt
{
    CCCryptorStatus ccStatus   = kCCSuccess;
    size_t          cryptBytes = 0;    // Number of bytes moved to buffer.
    NSMutableData  *dataOut    = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES128];

    ccStatus = CCCrypt( encryptOrDecrypt, // kCCEncrypt or kCCDecrypt
                       kCCAlgorithmAES128,
                       kCCOptionPKCS7Padding,
                       symmetricKey.bytes, 
                       kCCKeySizeAES128,
                       iv.bytes,
                       dataIn.bytes,
                       dataIn.length,
                       dataOut.mutableBytes,
                       dataOut.length,
                       &cryptBytes);

    if (ccStatus != kCCSuccess) {
        NSLog(@"CCCrypt status: %d", ccStatus);
    }

    dataOut.length = cryptBytes;

    return dataOut;
}