使用 Security.framework 在 iOS 上生成对称密钥



我正在努力使用安全框架在iOS中生成对称密钥。SecKey.hSecKeyGenerateSymmetric()了一种方法,但它仅适用于macOS。我看到的唯一可用的是用于非对称加密的SecKeyGeneratePair()

同样通过阅读本文档,看起来进行对称加密的唯一方法是生成一个非对称密钥对并使用公钥调用SecKeyCreateEncryptedData(),并在后台生成对称密钥,但您无权访问它。我需要访问对称密钥。

如果有人有在iOS上进行对称加密的经验,我将不胜感激。

通过CryptoKit的介绍,可以使用以下代码来完成:

 import CryptoKit
 //generate Symmetric  key
 let key = SymmetricKey(size: .bits256)
    
  

下面是使用 AES-GCM 方法使用 32 字节对称密钥进行加密和解密的示例:

//generate Symmetric  key
 let key = SymmetricKey(size: .bits256)
  //encrypt plaintext
   let encryptedData = try!  AES.GCM.seal("plain-text".data(using: .utf8)!, using: key)
    print("Encrypted data using symmetric key:(encryptedData)")
    
    //decrypt data
    let sealedBoxRestored = try! AES.GCM.SealedBox(nonce: encryptedData.nonce, ciphertext: encryptedData.ciphertext, tag: encryptedData.tag)
    let decryptedData = try! AES.GCM.open(sealedBoxRestored, using: key)
    print("Decrypted:n(String(data: decryptedData, encoding: .utf8)!)")

相关内容

  • 没有找到相关文章

最新更新