4

我正在尝试在 Objective-C 中将 NSString 加密为 NSString 和 NSData ,所以我开始搜索。

我从这里开始,但不幸的是,这超出了我的想象。

然后我发现自己在这篇文章中并且觉得它很容易理解,所以我继续尝试找出实现。在查看了实现之后,我看到了帖子中的第二个答案,看到他有更多适应性强的实现,这让我明白了他的要点。根据 gist 自述文件,他"took down this Gist due to concerns about the security of the encryption/decryption". 这使我相信从上面实现的安全性也存在安全缺陷。

然而,从那个要点来看,他提到了另一种我可以用于加密的替代方案。查看代码后,我注意到它生成 NSData 与"a header, encryption salt, HMAC salt, IV, ciphertext, and HMAC". 我知道如何处理该问题以再次使用同一个库进行解码,但是鉴于我不太清楚要发送给他的内容,我该如何将其传递给服务器人员?

在这一切的根源,我在我的头上。鉴于我上面所说的并且知道我没有时间为此进行大量学习,除非绝对必要,否则我应该如何最好地处理这个编码/解码过程,给定一个私钥将它运送到不是我设计的服务器的最终目标?(这对于一个句子来说是怎样的!)

4

1 回答 1

3

也许你应该问服务员?当您在太多方之间进行加密时,您必须就该数据的格式达成某种协议,原始原语不能单独处理,更不用说仅处理原语和仅发送 aes 密文的愿望会导致错误。

您提到的RNCryptor是一个高级加密库,它定义了其他人也必须遵守的简单格式,它很简单,因此有助于跨平台,但它具有您需要正确执行 AES 的额外内容。还有其他类似的库(NaCLGPGMEKeyczar),它们的格式并不简单,但使用起来很简单,因此您需要能够在两端使用该库,但我会高度如果可以的话,建议您使用类似的东西,而不是自己动手。

Keyczar 专门用于 java、python、c++、c# 和 go,因此,如果您可以在 iOS(或 Mac,您的目标是客户端)上使用 c++ 版本,您可能会在服务器上很好,因为有多种选择.

于 2013-02-13T18:15:01.167 回答