如何使用提供的字符串,模式,密钥,填充和密钥

时间:2016-02-04 16:53:55

标签: ios objective-c encryption aes

我正在尝试使用以下信息解密AES加密:

  

提供示例:

  
      
  • 加密字符串:vsiv + Tv0H9Tz0GHtf2S4KBXVV + 0L6Wr0xCWwA1QOPs8rnyRxNDDgH4ogo5Mm + wrzEW6uFD2kdFI2IcSTx + RMu   3817A7n1 / ZLCjqq6ZTXI3QZbWgr6AH3SOGM / lcnud4EROGUiZuTiWIBjxTy + Q / 8TA ==

  •   
  • 解密后的字符串(预期):BadgeID ^ CustIDLookup ^名字^姓氏^标题^公司^地址1 ^地址   2 ^ ^市州^ ^邮编国家^ ^电话电子邮件

  •   

不幸的是,如果不知道它是如何被加密的,那么解码似乎并没有完全发挥作用。

我使用以下方法创建了一个NSString类别:

- (NSString *)decryptWithKey:(NSString *)key {

    NSData *stringData = [self dataUsingEncoding:NSUTF8StringEncoding];
    NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];

    size_t decryptedDataLength = [stringData length] + kCCKeySizeAES128;
    NSMutableData *decryptedData = [NSMutableData dataWithLength:kCCKeySizeAES128 + decryptedDataLength];

    size_t numberOfBytes;

    CCCryptorStatus status = CCCrypt(kCCDecrypt,
                                     kCCAlgorithmAES128,
                                     kCCOptionPKCS7Padding,
                                     [keyData bytes],
                                     kCCKeySizeAES128,
                                     nil,
                                     [stringData bytes], [stringData length],
                                     decryptedData.mutableBytes, [decryptedData length],
                                     &numberOfBytes);

    if (status == kCCSuccess) {
        return [decryptedData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
    } else {
        NSLog(@"Status: %d", status);
        return @"";
    }
}

我获得kCCSuccess状态,但字符串不符合预期。任何帮助将不胜感激。

0 个答案:

没有答案