OGeek|极客世界-中国程序员成长平台

标题: ios - 从 PHP 解密 Objective-C 中的 AES128/CBC [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 07:51
标题: ios - 从 PHP 解密 Objective-C 中的 AES128/CBC

我是 xCode 和 Objective-C 的新手。我已经编写了一个 QR 扫描仪,现在我需要解密使用 AES128 CBC 加密的数据。我在 php 中使用此代码段加密明文:http://www.androidsnippets.com/encrypt-decrypt-between-android-and-php

你能帮我吗?对不起我的英语不好,我是德国人



Best Answer-推荐答案


使用 CommonCrypto,见 CommonCryptoCCCryptor

这里有一个片段可以帮助您入门:

+ (NSData *)doCipherNSData *)dataIn
                  ivNSData *)iv
                 keyNSData *)symmetricKey
             contextCCOperation)encryptOrDecrypt
               errorNSError **)error
{
    CCCryptorStatus ccStatus   = kCCSuccess;
    size_t          cryptBytes = 0;    // Number of bytes moved to buffer.
    NSMutableData  *dataOut    = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES128];

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

    if (ccStatus == kCCSuccess) {
        dataOut.length = cryptBytes;
    }
    else {
        if (error) {
            *error = [NSError errorWithDomain"kEncryptionError"
                                         code:ccStatus
                                     userInfo:nil];
        }
        dataOut = nil;
    }

    return dataOut;
}

另见 RNCryptor全面实现。

关于ios - 从 PHP 解密 Objective-C 中的 AES128/CBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744348/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4