如何在ios中用RSA公钥encryption和解密string(纯文本),swift
我想用我的RSA
公钥Encrypt
一个string(纯文本)。 我有一个public key
,从服务器发送一个String
并与我创build一个RSA
公钥。 现在我想使用该密钥来Encrypt
我的文本与填充PKACS12
。 我怎样才能做到这一点。 我经历了很多堆栈溢出问题,并没有得到任何成功。
这是我如何创buildRSA public key
,
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)
这将成功创build一个RSA public key
。 现在我想用这个密钥来encryption我的另一个Plain Text
。 我怎样才能做到这一点。
希望对你有帮助:
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 }
- 如何在swift中从另一个视图控制器重新加载tableview
- 渐变animation – 慢下来,加快速度
- 在Swift中添加千位分隔符到Int
- Swift inputAccessoryView覆盖错误
- 使用instantiateViewControllerWithIdentifier和performseguewithidentifier有什么区别?
- 在运行时访问UIView宽度
- archiverootobject和unarchiverootobject的有效文件path
- 以正确的方向保存图像 – Swift&Core Image
- iOS Swiftmultidimensional array – 编译需要很长时间。 我应该改变什么?