如何在ios中使用RSA公钥加密和解密字符串(纯文本),swift [英] how to encrypt and decrypt a String(Plain Text) with RSA public key in ios, swift
问题描述
我想用我的 RSA
公钥Encrypt
一个字符串(纯文本).我有一个 public key
,它从服务器作为 String
发送,然后我创建了一个 RSA
公钥.现在我想使用该密钥来Encrypt
填充PKACS12
的文本.我怎样才能做到这一点.我经历了很多堆栈溢出问题,但没有取得任何成功.
I want to Encrypt
a string(Plain Text) with my RSA
public key. I have a public key
, which sent from the server as a String
and with that I created a RSA
public key. now I want to use that key to Encrypt
my text with padding PKACS12
. how can I do that. I went through lots of stack overflow questions and I didn't get any success.
这就是我创建RSA公钥
的方式,
let serverPublicKey = "Some text with key"
let data2 = Data.init(base64Encoded: serverPublicKey)
let keyDict:[NSObject:NSObject] = [
kSecAttrKeyType: kSecAttrKeyTypeRSA,
kSecAttrKeyClass: kSecAttrKeyClassPublic,
kSecAttrKeySizeInBits: NSNumber(value: 2048),
kSecReturnPersistentRef: true as NSObject
]
let publickeysi = SecKeyCreateWithData(data2! as CFData, keyDict as CFDictionary, nil)
这成功地创建了一个 RSA public key
.现在我想用这个密钥来加密我的另一个 Plain Text
.我该怎么做.
this creates a RSA public key
successfully. now I want to use this key to encrypt my another Plain Text
. how can I do that.
推荐答案
希望能帮到你:
let serverPublicKey = "Some text with key"
let data2 = Data.init(base64Encoded: serverPublicKey)
let keyDict:[NSObject:NSObject] = [
kSecAttrKeyType: kSecAttrKeyTypeRSA,
kSecAttrKeyClass: kSecAttrKeyClassPublic,
kSecAttrKeySizeInBits: NSNumber(value: 2048),
kSecReturnPersistentRef: true as NSObject
]
let publickeysi = SecKeyCreateWithData(data2! as CFData, keyDict as CFDictionary, nil)
//Encrypt a string with the public key
let message = "This is my message."
let blockSize = SecKeyGetBlockSize(publickeysi!)
var messageEncrypted = [UInt8](repeating: 0, count: blockSize)
var messageEncryptedSize = blockSize
var status: OSStatus!
status = SecKeyEncrypt(publickeysi!, SecPadding.PKCS1, message, message.characters.count, &messageEncrypted, &messageEncryptedSize)
if status != noErr {
print("Encryption Error!")
return
}
这篇关于如何在ios中使用RSA公钥加密和解密字符串(纯文本),swift的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!