如何在不使用Mac OS 10.5 / 10.6中的OpenSSL的情况下解密blowfish加密字符串

时间:2009-10-14 22:49:21

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

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

我必须使用Blowfish或者当前在该字段中的所有副本在更新后将停止工作(它们依赖于之前存储的Blowfish加密字符串,他们必须能够对其进行解密和验证)。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

相反,将“完整路径”放入“其他链接标志”中的库中
第4步:构建。

答案 1 :(得分:0)

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