首页 文章

在iOS中创建RSA私钥

提问于
浏览
1

我正试图在iPhone上重写ObjC中的一些Java(Android)代码 . 代码将执行基本Web服务调用,并需要使用身份验证信息设置一些标头 .

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

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签名计算很简单,但我不知道如何轻松创建私有RSA密钥 . 如果有任何可用的话,我宁愿使用内置的API,但如果我必须使用像OpenSSL这样的第三方库,那么我也可以使用它 .

1 回答

  • 2

    大多数人(需要引用)选择使用第三方OpenSSL库,不仅因为滚动你自己的加密很难,而且因为如果你还没有经验,你很可能会创建糟糕的加密 .

    也就是说,如果你愿意的话,没有什么能阻止你用直接的C或C编写你自己的SHA256哈希,虽然我认为你会发现你的PRNG选项缺乏并且发现自己花费太多时间在熵池等上 .

    如果你确实遇到了一个好的SHA256原语而没有OpenSSL的所有额外包袱,我也很想了解它!但到目前为止我还没有见过一个 .

相关问题