【问题标题】:Can't decrypt file, which was encrypted on server side with OpenSSL AES 256 CBC [closed]无法解密在服务器端使用 OpenSSL AES 256 CBC 加密的文件 [关闭]
【发布时间】:2014-01-30 14:03:29
【问题描述】:

我试图解决这个问题很长时间,但仍然无法得到结果。我将this openssl library 用于iOS 和this example code。如果我使用此代码加密数据,我也可以解密此代码。但是如果我使用终端和openssl命令加密数据,则无法使用此代码解密加密文件..是否有一些差异或某些事情,不让我成功完成解密..我会很高兴任何建议或建议.. 谢谢。

更新: 我使用的命令: openssl aes-256-cbc -in test.pdf -out test.bin -kfile key -S salt_in_hex

【问题讨论】:

  • 请发布使用的 OpenSSL 命令?
  • openssl aes-256-cbc -in test.pdf -out test.bin -kfile key -S salt_in_hex

标签: ios encryption openssl aes


【解决方案1】:

您缺少的是,在代码示例中,他们使用了密钥和 iv 派生函数:`EVP_BytesToKey,而不是原始密钥,谷歌一下。此外,您还缺少 CBC 模式所必需的 iv。

最好不要在 iOS 中使用 OpenSSL。 Appel 不提供它,因为版本更新很多时候不能向后兼容破坏旧代码。最好使用 iOS 提供的 CommonCrypto 函数。

如果您有兴趣在数百小时了解它的产品计划中使用安全性。加密部分是简单的部分。如果您只是为了学习而玩这个,请考虑一些书籍,例如 Bruce Schneier 的 Applied Cryptography 和免费在线提供的 Handbook of Applied Cryptography。即使是这些也严重影响了密码学的正确应用。

【讨论】:

  • 感谢您的回答。最好不要在 iOS 中使用 OpenSSL?但是有什么替代方案?我不仅想使用 iOS,我的意思是我需要,例如,在服务器端(不是在 iOS 端)加密某些东西,而不是在 iOS 和 Android 中解密它。我不确定,CommonCrypto 是否会帮助我。
猜你喜欢
  • 2013-08-11
  • 1970-01-01
  • 2017-08-28
  • 2022-06-11
  • 2020-08-20
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多