如何从文件中加载公钥或私钥,然后在不使用库或API的情况下使用Swift加密或解密数据?
答案 0 :(得分:4)
您可以使用OS X的内置OpenSSL来生成和加密OS X和Swift的组合。
OpenSSL命令:
最后,从iOS角度来看,重要文件是publicKey.der和privateKey.pfx。您将使用publicKey.der加密数据,并使用privateKey.pfx进行解密。
iOS加密
在iOS中,除了提供编码和解码密钥的支持功能外,Certificate,Key和Trust Services API还使用以下SecKey功能提供基本的加密,解密,签名和数据块验证:
SecKeyEncrypt - 使用指定的密钥加密数据块。
SecKeyDecrypt - 使用指定的密钥解密数据块。
SecKeyRawSign - 使用指定的密钥指定数据块。
SecKeyRawVerify - 针对数据块和指定密钥验证签名。
Apple Docs
Encrypting and Hashing Data
您可以在Apple文档Certificate, Key, and Trust Services Tasks for iOS
中找到有关如何使用这些功能的示例import UIKit
import CoreFoundation
对Security.h使用桥接头文件
#import <Security/Security.h>
答案 1 :(得分:1)
好的,我为你做了一些研究,这是我的想法(基于我在this related question中看到的答案)。
There is an open source GitHub project in Swift called Heimdall这是Apple安全框架的一个很好的包装器。 GitHub页面上的自述文件表示&#34; Swift 1.2&#34;但Xcode 7&amp; Swift 2.0现在将在任何一天完成,希望很快就会更新。
如果您想跳过使用开源软件,那么您需要直接调用Apple的安全框架。查找包含以下调用的示例代码:SecKeyEncrypt
和
SecKeyDecrypt
这两个调用(以及SecKey.h中的所有内容)似乎都是C函数,但我链接的Apple文档似乎表明可能有Swift API可用。