【发布时间】:2017-01-17 09:11:26
【问题描述】:
在 iOS 中生成 RSA 密钥对并将其作为 String 获取的最佳方式是什么?我见过几个可以生成的库,但我无法将私钥作为字符串。有谁知道在字符串中获取私钥的库或方法?
目前我以这种方式生成密钥对
var statusCode: OSStatus
var publicKey: SecKey?
var privateKey: SecKey?
let publicKeyAttr: [NSObject: NSObject] = [kSecAttrIsPermanent:true as NSObject, kSecAttrApplicationTag:"publicTag" as NSObject]
let privateKeyAttr: [NSObject: NSObject] = [kSecAttrIsPermanent:true as NSObject, kSecAttrApplicationTag:"privateTag" as NSObject]
var keyPairAttr = [NSObject: NSObject]()
keyPairAttr[kSecAttrKeyType] = kSecAttrKeyTypeRSA
keyPairAttr[kSecAttrKeySizeInBits] = 2048 as NSObject?
keyPairAttr[kSecPublicKeyAttrs] = publicKeyAttr as NSObject?
keyPairAttr[kSecPrivateKeyAttrs] = privateKeyAttr as NSObject?
statusCode = SecKeyGeneratePair(keyPairAttr as CFDictionary, &publicKey, &privateKey)
if statusCode == noErr && publicKey != nil && privateKey != nil {
print(publicKey!)
print(privateKey!)
} else {
print("Error generating key pair: \(statusCode)")
}
它在 SecKey 中。如何将它们转换为 String?或者有其他方法吗?
【问题讨论】:
-
@OlegGordiichuk 它没有提到如何获取字符串中的私钥。
-
看看SecItemCopyMatching。我知道你可以获得公钥的原始数据。我希望它也适用于私钥。获得数据后,您可以对其进行 Base64 编码。
标签: ios swift security cryptography security-framework