【问题标题】:Is there a way in obj-c cocoa to create a AES-128 encryption key fileobj-c cocoa 中有没有办法创建 AES-128 加密密钥文件
【发布时间】:2013-03-05 15:29:12
【问题描述】:

在我的 mac 应用程序中,我必须使用 AES-128 加密密钥来加密文件

我曾想过使用http://www.aescrypt.com/download/ 这样做。

但我首先需要加密密钥文件

底线是这样的

  1. 从我的 mac 应用程序生成一个密钥文件(这是我需要的关键步骤)
  2. 使用密钥文件加密 abcd.mpg 文件
  3. 将密钥存放在安全的地方
  4. 获取密钥并解密

【问题讨论】:

  • 您应该查看CommonCrypto,它是用于加密/解密的 OS X 库的一部分,您应该调查用于存储密钥的 KeyChain
  • 除非您使用正确的密码模式并对数据进行身份验证,否则这将不安全。有成千上万种方法可以搞砸,只有几种方法可以正确地做到这一点,听起来你不知道自己在做什么。机会对你不利。

标签: objective-c cocoa encryption aes crypt


【解决方案1】:

创建密钥只需要知道密钥需要多长时间并具有良好的随机性来源。在 OS X 的情况下,有一个很好的 /dev/random 被认为包含足够的熵,从它读取用于加密目的是合理的。您可以像任何其他设备一样读取它。

可以在 10.5 及更高版本下使用 Common Crypto 进行加密(和解密),在 10.7 及更高版本中使用安全转换,两者都有很好的文档记录(搜索 Cryptographic Services 以获得良好的概述)。

对于密钥存储(正如@mttrb 所提到的),KeyChain 是 OS X 上的正确选择,如果您需要允许用户单独保存密钥,您可以考虑将其打包在密码容器中。

虽然 Common Crypto 可以在 10.8 之前使用,但安全转换允许链接,并且在处理流数据和更大的文件时设计得更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多