【问题标题】:How can I decrypt blowfish encrypted string without using OpenSSL in Mac OS 10.5/10.6如何在 Mac OS 10.5/10.6 中不使用 OpenSSL 解密河豚加密字符串
【发布时间】:2009-10-14 22:49:20
【问题描述】:

我的应用程序当前正在使用 SSCrypto.framework 来解密使用 Blowfish 加密的字符串。 SSCrypto 使用 OpenSSL,这对我来说是一个新问题。在以 10.5 为目标时使用 10.6 基础 SDK 似乎不起作用。此 Apple 邮件列表线程中解释了该问题:http://lists.apple.com/archives/Cocoa-dev/2009/Aug/msg01737.html

我必须使用 Blowfish,否则当前在现场的所有副本一旦更新就会停止工作(它们依赖于之前存储的 Blowfish 加密字符串,他们必须能够解密和验证)。

【问题讨论】:

  • “在面向 10.5 的情况下使用 10.6 基础 SDK”是什么意思?由于这似乎是相互排斥的,因此举个例子可能有助于解答。
  • 您是否尝试了链接到的线程中建议的两种解决方案?他们是不是因为某种原因没有工作?

标签: objective-c cocoa macos encryption osx-snow-leopard


【解决方案1】:

OpenSSL 具有非常宽松的许可证,因此只需将其作为静态库链接到您的应用程序中。然后您应该仍然可以使用 SSCrypto 框架,或者您可以直接调用 OpenSSL libcrypto 例程。

第 1 步:从源代码构建 openssl:Download OpenSSL

第 2 步:向 Xcode 添加标头搜索路径,指向您构建的源代码树的 OpenSSL 包含目录

第 3 步:链接 libcrypto.a。注意:为防止 XCode 链接到系统的 libcryto 动态副本,请勿将 libcrypto.a 添加到您的 XCode 项目中。如果这样做,则会在链接器命令中添加 -lcrypto,链接器将通过首先查找动态库来解决该问题(它将在 /usr/lib 中找到 - 正是您不想要的)

而是将库的完整路径放在“其他链接器标志”中

第 4 步:构建。

【讨论】:

    【解决方案2】:

    Blowfish 非常简单和常见,您可以轻松嵌入自己的算法副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多