Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como usar o CommonCrypto no ambiente Apple

O CommonCrypto é uma biblioteca de criptografia fornecida pela Apple para desenvolvedores de aplicativos iOS e macOS. Ele oferece uma variedade de algoritmos criptográficos, como AES, DES, RSA e HMAC, que podem ser usados para proteger dados confidenciais em aplicativos.

Para começar a usar o CommonCrypto, você precisa importar o framework Security em seu projeto. Para fazer isso, siga as etapas abaixo:

  1. Abra o Xcode e abra seu projeto.
  2. Selecione o arquivo de destino do seu aplicativo.
  3. Clique na guia "Build Phases".
  4. Expanda a seção "Link Binary With Libraries".
  5. Clique no botão "+" para adicionar um novo framework.
  6. Pesquise por "Security" e selecione-o na lista de resultados.
  7. Clique em "Adicionar" para incluir o framework em seu projeto.

Agora que você tem o framework Security em seu projeto, você pode começar a usar o CommonCrypto. Abaixo estão alguns exemplos de como usar o CommonCrypto para criptografar e descriptografar dados:

Exemplo 1: Criptografar usando o algoritmo AES

import CommonCrypto

func encryptData(data: Data, key: Data) throws -> Data {
    var encryptedData = Data(count: data.count + kCCBlockSizeAES128)
    var numBytesEncrypted: size_t = 0

    let status = key.withUnsafeBytes { keyBytes in
        data.withUnsafeBytes { dataBytes in
            encryptedData.withUnsafeMutableBytes { encryptedBytes in
                CCCrypt(CCOperation(kCCEncrypt),
                        CCAlgorithm(kCCAlgorithmAES),
                        CCOptions(kCCOptionPKCS7Padding),
                        keyBytes.baseAddress, key.count,
                        nil,
                        dataBytes.baseAddress, data.count,
                        encryptedBytes.baseAddress, encryptedData.count,
                        &numBytesEncrypted)
            }
        }
    }

    guard status == kCCSuccess else {
        throw NSError(domain: "encryptionError", code: Int(status), userInfo: nil)
    }

    encryptedData.count = numBytesEncrypted
    return encryptedData
}

Exemplo 2: Descriptografar usando o algoritmo AES

import CommonCrypto

func decryptData(data: Data, key: Data) throws -> Data {
    var decryptedData = Data(count: data.count + kCCBlockSizeAES128)
    var numBytesDecrypted: size_t = 0

    let status = key.withUnsafeBytes { keyBytes in
        data.withUnsafeBytes { dataBytes in
            decryptedData.withUnsafeMutableBytes { decryptedBytes in
                CCCrypt(CCOperation(kCCDecrypt),
                        CCAlgorithm(kCCAlgorithmAES),
                        CCOptions(kCCOptionPKCS7Padding),
                        keyBytes.baseAddress, key.count,
                        nil,
                        dataBytes.baseAddress, data.count,
                        decryptedBytes.baseAddress, decryptedData.count,
                        &numBytesDecrypted)
            }
        }
    }

    guard status == kCCSuccess else {
        throw NSError(domain: "decryptionError", code: Int(status), userInfo: nil)
    }

    decryptedData.count = numBytesDecrypted
    return decryptedData
}

Alternativas viáveis no ambiente Apple:

  • CryptoKit: Uma estrutura de criptografia fornecida pela Apple a partir do iOS 13 e macOS 10.15. Ela oferece uma API mais fácil de usar e é recomendada para novos projetos.
  • OpenSSL: Uma biblioteca de criptografia de código aberto amplamente utilizada. Ela pode ser usada em projetos iOS e macOS, mas requer a configuração manual do framework e pode ser mais complexa de usar do que o CommonCrypto ou o CryptoKit.

Em resumo, o CommonCrypto é uma biblioteca poderosa para criptografia no ambiente Apple. Com exemplos práticos e códigos de exemplo, você pode começar a usar o CommonCrypto em seus projetos iOS e macOS para proteger dados confidenciais. Se você estiver usando uma versão mais recente do iOS ou macOS, considere usar o CryptoKit como alternativa.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.