菜鸟教程小白 发表于 2022-12-12 23:05:09

使用公钥/私钥的 iOS 应用数据加密


                                            <p><p>我是该主题的新手,希望能提供有关如何为 iOS 应用程序实现公钥/私钥加密的任何帮助/指导。看起来安全框架可以满足我的需要,但我想确保我有最好的建议。</p>

<p>基本上,用户 A 和用户 B 想要安全地通信。用户 A 将拥有用户 B 的公钥,并使用它来加密消息。然后用户 B 获取消息并使用私钥对其进行解密。</p>

<p>所以我想问题是:</p>

<ol>
<li><p>生成公钥/私钥的最佳方式是什么。那会是 OpenSSL 吗?</p></li>
<li><p>如果是 OpenSSL,有没有办法在 iOS 设备中做到这一点,还是我需要依赖服务器/外部生成私钥/公钥?</p></li>
<li><p>如果在 iOS 设备外部生成私钥/公钥是唯一的选择,那么让 iOS 设备像正常下载一样通过 HTTP 请求 key 文件是不是一件简单的事情?</p></li >
<li><p>当最终用户拥有公钥和私钥时,是否有一个简单的教程/示例展示如何使用 RSA 加密和解密消息(顺便说一句,RSA 是选项吗)?</p></li>
</ol></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><ol>
<li>尽可能避免使用 OpenSSL,在 OSX/iOS 上使用 Apple 加密方法。</li>
<li>在服务器端,OpenSSL 可能是您最好的选择。</li>
<li>您可以使用 <strong>https</strong> 安全地传输 key 。</li>
<li>以下链接提供了很好的示例代码:</li>
</ol>

<p>要生成 key ,请使用 <code>SecKeyGeneratePair()</code> 见 <a href="https://stackoverflow.com/a/10559783/451475" rel="noreferrer noopener nofollow">SO Question</a>例如代码。</p>

<p>要获取传输 key ,请使用 <code>SecItemCopyMatching ()</code> 见 <a href="https://stackoverflow.com/q/5988735/451475" rel="noreferrer noopener nofollow">SO Answer</a>例如代码。</p>

<p>执行 RSA 加密的示例代码参见 <a href="https://stackoverflow.com/a/19221754/451475" rel="noreferrer noopener nofollow">SO Answer</a> </p>

<p><strong>注意事项:</strong></p>

<p>私钥/公钥在同一台机器上一起生成。公钥可以轻松公开地共享,但问题是对公钥进行身份验证。 <strong>https</strong> 是传输 key 的可行方式。</p>

<p>一般情况下,数据不使用公钥/私钥加密/解密。这有几个原因:它非常慢,它的数据大小有限(受 key 大小的限制)。通常,数据使用对称方法(如 AES 和随 secret 钥)加密,并使用公钥加密 key ,使用私钥发送和解密。然后该 key 用于解密 AES 加密的实际数据。 </p>

<p>Apple 不再提供 OpenSSL,您需要获取您喜欢的源版本并自行构建。不提供 OpenSSL 的既定原因是次要版本不向后兼容,并且当 Apple 提供当前版本并且开发人员的应用程序使用不兼容的旧版本时会产生问题。</p>

<p>对于教程:谷歌它。</p></p>
                                   
                                                <p style="font-size: 20px;">关于使用公钥/私钥的 iOS 应用数据加密,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24291264/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24291264/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: 使用公钥/私钥的 iOS 应用数据加密