【问题标题】:Decrypt AES128-encrypted data解密 AES128 加密的数据
【发布时间】:2011-03-12 16:05:08
【问题描述】:

我正在尝试解密过去几天的数据。我解密数据,但结果与原始数据不同。请,任何人都可以建议我如何做到这一点。我正在尝试解密以下数据:

加密数据:“Mmb9tEkmW82oFPJb3vNhHA=="

加密密钥:“91860F52E5C3A09BA3B827F28070E08D”

原始数据:“马可”

请帮忙。 谢谢

【问题讨论】:

  • 您可能想详细说明加密字符串的来源以及您如何初始化 iPhone 加密库。同时,这个 SO Q 可能会给您一些关于可能出现问题的想法 - stackoverflow.com/questions/538435/…
  • 第一步是对数据进行base64解码。

标签: iphone encryption aes


【解决方案1】:

这是我使用 AES128 的方式

- (NSData *)cipherData:(NSData *)data {
    return [self aesOperation:kCCEncrypt OnData:data];
}

- (NSData *)decipherData:(NSData *)data {
    return [self aesOperation:kCCDecrypt OnData:data];
}


- (NSData *)aesOperation:(CCOperation)op OnData:(NSData *)data {
    NSData *outData = nil;

    // Data in parameters   
    const void *key = cipherKey.bytes;
    const void *dataIn = data.bytes;
    size_t dataInLength = data.length;  
    // Data out parameters
    size_t outMoved = 0;

    // Init out buffer
    unsigned char outBuffer[BUFFER_SIZE];
    memset(outBuffer, 0, BUFFER_SIZE);
    CCCryptorStatus status = -1;

    status = CCCrypt(op, kCCAlgorithmAES128, kCCOptionPKCS7Padding, key, kCCKeySizeAES256, NULL,
                 dataIn, dataInLength, &outBuffer, BUFFER_SIZE, &outMoved);

    if(status == kCCSuccess) {  
        outData = [NSData dataWithBytes:outBuffer length:outMoved];
    } else if(status == kCCBufferTooSmall) {
        // Resize the out buffer
        size_t newsSize = outMoved;
        void *dynOutBuffer = malloc(newsSize);
        memset(dynOutBuffer, 0, newsSize);
        outMoved = 0;

        status = CCCrypt(op, kCCAlgorithmAES128, kCCOptionPKCS7Padding, key, kCCKeySizeAES256, NULL,
                     dataIn, dataInLength, &outBuffer, BUFFER_SIZE, &outMoved);

    if(status == kCCSuccess) {  
        outData = [NSData dataWithBytes:outBuffer length:outMoved];
    }
}

return outData; 
}

【讨论】:

  • 你能分享一下完整的加解密模块吗?
  • 嘿,我使用的是相同的代码,但在解密时仍然出现 -4301 错误,无法解密字符串,请您帮助我使用 AES128 解密。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 2011-11-24
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 2014-11-29
相关资源
最近更新 更多