我曾尝试在Swift3中使用许多库(如CryptoSwift)进行AES256加密,但无法获得正确的结果。
let aes = try AES(key: anykey, iv: "")
let ciphertext = try aes.encrypt(data)
我想尝试的模式如下。
Algorithm: Rijndael-256
MODE: ECB
IV: NULL
如果我的代码中有错误,或者在Swift3中加密AES256有更好的方法,请回答我。
答案 0 :(得分:2)
RNCryptor是AES256加密和解密的有用框架。
// Encryption
let data ... // Some data you want to encrypt
let password = "0Bfy8q9475jgjjbsu"
let ciphertext = RNCryptor.encryptData(data, password: password)
// Decryption
do {
let originalData = try RNCryptor.decryptData(ciphertext, password: password)
} catch let error {
print("Can not Decrypt With Error: \n\(error)\n")
}
答案 1 :(得分:0)
您还可以尝试RNCryptor包装的CommonCrypto C库。这是XCode的标准配置。不幸的是,它没有快速的框架设置。该项目创建了一个框架,以便在swift https://github.com/sergejp/CommonCrypto/tree/master/CommonCrypto
中轻松使用您可以在https://github.com/adam-fowler/swift-library/blob/master/data/aes.swift使用CommonCrypto库找到示例代码。