Swift 中的 AES 加密

作者:编程家 分类: swift 时间:2025-08-10

使用Swift语言进行AES加密的功能非常强大和实用。AES(Advanced Encryption Standard)是一种对称加密算法,被广泛应用于数据保护和安全传输领域。在Swift中,我们可以使用CryptoKit库来实现AES加密,这为我们提供了一种简单而安全的方式来保护我们的数据。

什么是AES加密?

AES加密是一种高级的对称加密算法,它可以对数据进行加密和解密。在AES加密算法中,数据被分成固定长度的块,并且每个块都会经过一系列的加密和解密操作。AES加密算法使用相同的密钥来加密和解密数据,因此被称为对称加密算法。

使用Swift中的CryptoKit库进行AES加密

在Swift中,我们可以使用CryptoKit库来实现AES加密。CryptoKit库提供了一组用于加密和解密操作的类型和函数。下面是一个简单的示例代码,展示了如何使用CryptoKit库进行AES加密。

swift

import CryptoKit

func encryptData(data: Data, key: SymmetricKey) throws -> Data {

let sealedBox = try AES.GCM.seal(data, using: key)

return sealedBox.combined

}

func decryptData(data: Data, key: SymmetricKey) throws -> Data {

let sealedBox = try AES.GCM.SealedBox(combined: data)

return try AES.GCM.open(sealedBox, using: key)

}

// 使用AES加密字符串

let text = "Hello, World!"

let data = Data(text.utf8)

let key = SymmetricKey(size: .bits256)

let encryptedData = try encryptData(data: data, key: key)

let decryptedData = try decryptData(data: encryptedData, key: key)

if let decryptedText = String(data: decryptedData, encoding: .utf8) {

print("Decrypted Text: \(decryptedText)")

}

在上面的示例代码中,我们定义了两个函数`encryptData`和`decryptData`,分别用于加密和解密数据。我们还定义了一个字符串`text`,并将其转换为`Data`类型。然后,我们生成一个256位的对称密钥`key`,并使用`encryptData`函数将数据进行加密。最后,我们使用`decryptData`函数对加密后的数据进行解密,并将解密后的数据转换为字符串输出。

使用AES加密保护敏感数据

在实际的应用中,我们经常需要保护敏感数据,例如用户的密码或个人信息等。使用AES加密算法可以确保这些敏感数据在传输或存储过程中不被未经授权的人访问。下面是一个示例代码,展示了如何使用AES加密来保护用户的密码。

swift

import CryptoKit

func encryptPassword(password: String, key: SymmetricKey) throws -> Data {

let data = Data(password.utf8)

let sealedBox = try AES.GCM.seal(data, using: key)

return sealedBox.combined

}

func verifyPassword(password: String, encryptedData: Data, key: SymmetricKey) throws -> Bool {

let data = try decryptData(data: encryptedData, key: key)

if let decryptedPassword = String(data: data, encoding: .utf8) {

return decryptedPassword == password

}

return false

}

let password = "secretpassword"

let key = SymmetricKey(size: .bits256)

do {

let encryptedPassword = try encryptPassword(password: password, key: key)

let isPasswordValid = try verifyPassword(password: password, encryptedData: encryptedPassword, key: key)

print("Is Password Valid: \(isPasswordValid)")

} catch {

print("Error: \(error)")

}

在上面的示例代码中,我们定义了两个函数`encryptPassword`和`verifyPassword`,分别用于加密和验证密码。我们首先将密码转换为`Data`类型,并使用`encryptPassword`函数对其进行加密。然后,我们使用`verifyPassword`函数对加密后的密码进行验证,并输出验证结果。

使用Swift中的CryptoKit库可以轻松实现AES加密算法,保护我们的数据安全。无论是保护敏感数据还是进行安全传输,AES加密都提供了一种可靠和高效的解决方案。希望本文对你理解Swift中的AES加密有所帮助,并能在实际开发中应用到相关场景中。