gpt4 book ai didi

ios - 在钥匙串(keychain)中保存加密的字符串

转载 作者:行者123 更新时间:2023-11-28 06:20:12 24 4
gpt4 key购买 nike

我正在尝试加密一个字符串并将其保存在钥匙串(keychain)中。这是我做的

   //Generate RSA private and public keys
let parameters: [String: AnyObject] = [
kSecAttrKeyType as String: kSecAttrKeyTypeRSA,
kSecAttrKeySizeInBits as String: 1024 as AnyObject
]
SecKeyGeneratePair(parameters as CFDictionary, &publicKey, &privateKey)

let blockSize = SecKeyGetBlockSize(publicKey!)
var messageEncrypted = [UInt8](repeating: 0, count: blockSize)
var messageEncryptedSize = blockSize

status = SecKeyEncrypt(publicKey!, SecPadding.PKCS1, data, data.characters.count, &messageEncrypted, &messageEncryptedSize)

let encryptedString = String(data: messageEncrypted, encoding: .utf8)

在最后一行,我得到这个错误“无法将 [UInt8] 类型转换为数据”。
我基本上想将 messageEncrypted 转换为 String,以便将其保存在钥匙串(keychain)中。
我正在使用这个钥匙串(keychain)库 - https://github.com/jrendel/SwiftKeychainWrapper
这要求我以字符串形式输入数据。
任何帮助将不胜感激。我知道将加密数据保存在钥匙串(keychain)中可能不是可行的方法,但这是客户的要求。

提前致谢

最佳答案

似乎只需要将您的 message Encrypted[UInt8] 转换为 Data 实例,幸运的是有一个 fitting initializer :

let encryptedData = Data(bytes: messageEncrypted)
let encryptedString = String(data: encryptedData, encoding: .utf8)

关于ios - 在钥匙串(keychain)中保存加密的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com