通过Swift和Cocoa加密文件的简单方法?

时间:2017-04-18 09:27:32

标签: swift file cocoa encryption aes

我正在寻找一种在我的Cocoa应用程序中使用Swift通过AES加密文件的方法。 据我所知,常见的框架(即CryptoSwift)应该只加密文本。 是否有针对此工作的特定框架,或者是否有任何类型的macOS内置方法?

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,使用CommonCrypto是一个好的开始。但我不建议使用任何自行开发的实现。

安全权利很难,AES也不例外。

  • 您需要使用正确长度的正确密钥(首选64或32字节)
  • 如果您的数据短于blocksize / keysize,则需要使用填充(我建议使用PKCS7)。 AES本身并不安全,这一点很重要。
  • 你也真的想使用一个initializationVector,(apasednd或者预先附加到最终数据流),否则攻击者可能会从同一个密钥中绘制几个加密流之间的相关性
  • 您还应该使用HMAC(SHA2-256及更高版本,也可以使用commoncrypto),以防止篡改您的加密数据并为您提供意外且可能有害的结果数据。

列表还在继续,但此时我的记忆力让我失望,因为我需要创建一个实现已经有一段时间了。 我强烈建议使用Google搜索包含CommonCrypto的标准实现。

我还建议不建议使用任何按原样编写的内容(IE CryptoSwift),因为代码库尚未经过验证并经过适当的审核,例如Apple的框架