ios - 在 iOS 中创建 RSA 私钥

标签 ios objective-c encryption rsa

我正在尝试在 iPhone 上用 ObjC 重写一些 Java (Android) 代码。该代码将执行基本的 Web 服务调用,并且需要设置一些带有身份验证信息的 header 。

该信息的一部分是我发送的数据的加密哈希值。

Java 版本使用手机上生成的 RSA 私钥计算 SHA256 签名。私钥是使用我可用的种子生成的。

(简化的)java代码如下:

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Signature sig = Signature.getInstance("SHA256WithRSAEncryption");

// I get the private key bytes from an outside source
EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
sig.initSign(keyFactory.generatePrivate(privateKeySpec));

sig.update(/* insert my data here */);
return sig.sign();

现在我正尝试在 iOS 和 ObjC 中重新创建它。进行 SHA256 签名计算很容易,但我不知道如何轻松创建私钥。如果有可用的内置 API,我更愿意使用,但如果我必须使用第三方库(如 OpenSSL),那么我也可以接受。

最佳答案

大多数人(需要引文)选择使用第三方 OpenSSL 库,不仅因为滚动自己的加密很难,而且因为如果您还没有经验,他们很有可能会创建错误的加密用它。

也就是说,没有什么能阻止您编写自己的 SHA256 哈希,如果您愿意,可以直接使用 C 或 C++,尽管我认为您会发现缺少 PRNG 选项,并且发现自己在熵池和喜欢。

如果您确实遇到了没有 OpenSSL 的所有额外包袱的良好 SHA256 原语,我也很乐意了解它!但到目前为止我还没有看到。

关于ios - 在 iOS 中创建 RSA 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932001/

相关文章:

html - 覆盖滚动条不显示

ios - 适用于iOS视差效果的最佳第三方库?

ios - TDD VS BDD : REST Service

iphone - 安全 pdf : locked/uneditable to prevent changes after generating from iOS device

objective-c - 在 iOS 中计算非整数指数

ios - 如何在 ios 应用程序中实现数码相框?

c# - signedXml.CheckSignature 始终返回 false

ios - CNContactStore 联系人记录数

android - 如何加密整个磁盘?

c# - 保护用户的云服务 API key 安全