我想在Objective-C中将NSString加密为NSString和NSData,所以我开始搜索。初学者的AES加密/解密
我从here开始,但不幸的是,这让我头痛。
然后我发现我自己at this post,它很容易跟随,所以我一直在努力弄清楚implementation。仔细查看实现后,我看到帖子中的第二个答案,并且看到他有更多的适应性实现,这使我可以访问his gist。根据要点自述,他"took down this Gist due to concerns about the security of the encryption/decryption"
。这使我相信,从上面执行的安全性也存在安全缺陷。
然而,从这个要点,他提到another alternative,我可以使用加密。在看了代码之后,我注意到它产生了与"a header, encryption salt, HMAC salt, IV, ciphertext, and HMAC"
的NSData。我知道如何处理再次使用同一个库进行解码,但是如果我不知道我发给他的是什么,我怎么会把它传递给服务器人呢?
在这一切的根源,我在我的头上。鉴于我上面所说的,并且知道我没有时间为此进行大量的学习,除非这是绝对必要的,那么我应该如何最好地处理关于这种编码/解码过程,给定一个私钥将它运送到不是由我设计的服务器的最终目标是什么? (如何在句子上跑!)
我一直希望找到最方便的解决方案,因为做服务器端的人几乎都是安全专家。我之所以来这么做,是因为他没有意识到iOS的外观,也是一种自豪的事情(我宁愿看起来胜任,而不是在这种情况下毫无用处)。但是,你认为''它有什么额外的,你需要正确地做AES'“? – RileyE 2013-02-13 18:54:23
@RileyE它的格式包括一个随机初始化向量,一个随机盐(可选,只有在使用密码而不是随机生成的密钥时才需要),并添加一个hmac标记以确保iv,salt和密文没有修改。密文的修改是许多针对AES的旁信道攻击的关键。 – jbtule 2013-02-13 19:01:52
@RileyE,我还认为RNCryptor是您方面最简单的解决方案。 – jbtule 2013-02-13 19:04:03