Я использую CommonCrypto с AES128 / CBC / PKCS7Padding для шифрования / дешифрования.
Шифрование AES в быстром
Ссылка на вышеуказанную ссылку, код работает нормально дляниже версии iOS 13, но не работает для iOS версии 13 и выше. Пожалуйста, предложите рабочее решение для iOS 13. Спасибо заранее.
func aesDecrypt(key:String, iv:String, options:Int = kCCOptionPKCS7Padding) -> String?
{
if let keyData = key.data(using: String.Encoding.utf8),
let data = NSData(base64Encoded: self, options: .ignoreUnknownCharacters),
let cryptData = NSMutableData(length: Int((data.length)) + kCCBlockSizeAES128)
{
let keyLength = size_t(kCCKeySizeAES128)
let operation: CCOperation = UInt32(kCCDecrypt)
let algoritm: CCAlgorithm = UInt32(kCCAlgorithmAES128)
let options: CCOptions = UInt32(options)
var numBytesEncrypted :size_t = 0
let cryptStatus = CCCrypt(operation,
algoritm,
options,
(keyData as NSData).bytes, keyLength,
iv,
data.bytes, data.length,
cryptData.mutableBytes, cryptData.length,
&numBytesEncrypted)
if UInt32(cryptStatus) == UInt32(kCCSuccess) {
cryptData.length = Int(numBytesEncrypted)
let unencryptedMessage = String(data: cryptData as Data, encoding:String.Encoding.utf8)
print("Decrypt Result unencryptedMessage:::",unencryptedMessage as Any)
return unencryptedMessage
}
else {
print("\(UInt32(cryptStatus))")
return nil
}
}
else {
Logger.log(message: "Faild to decrypt the string", event: .e) // Error
return nil
}
}