Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Swift和Cocoa加密文件的简单方法?_Swift_File_Cocoa_Encryption_Aes - Fatal编程技术网

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

通过Swift和Cocoa加密文件的简单方法?,swift,file,cocoa,encryption,aes,Swift,File,Cocoa,Encryption,Aes,我正在寻找一种在Cocoa应用程序中使用Swift通过AES加密文件的方法。 据我所知,通用框架(即CryptoSwift)应该只加密文本。 这项工作是否有一个特定的框架,或者是否有任何类型的macOS内置方法 谢谢 是的,使用CommonCrypto是一个良好的开端。但是,我不建议使用任何国产实现 做担保权很难,AES也不例外 您需要使用正确长度的正确密钥(首选64或32字节) 如果数据短于blocksize/keysize,则需要使用填充(我建议使用PKCS7)。AES本身是不安全的,此位

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


谢谢

是的,使用CommonCrypto是一个良好的开端。但是,我不建议使用任何国产实现

做担保权很难,AES也不例外

  • 您需要使用正确长度的正确密钥(首选64或32字节)
  • 如果数据短于blocksize/keysize,则需要使用填充(我建议使用PKCS7)。AES本身是不安全的,此位很重要
  • 您还需要使用initializationVector(在最终数据流中添加或添加前缀),因为否则攻击者可能会在来自同一密钥的多个加密流之间建立关联
  • 您还应使用HMAC(SHA2-256及更高版本,也可在commoncrypto中使用),以防止篡改加密数据,并提供意外和潜在有害的结果数据
这个列表还在继续,但此时我的内存不足,因为我已经有一段时间没有需要创建一个实现了。 我强烈建议谷歌搜索一个围绕CommonCrypto的标准实现

我还建议,不建议使用任何按原样编写的东西(即CryptoSwift),因为代码库没有经过验证,也没有经过适当的审查,就像苹果的框架

一样,普通框架(即CryptoSwift)可以处理
字符串
数据