【发布时间】:2012-07-12 18:18:32
【问题描述】:
如何加密 nsstring 并将其存储在文件中,以及如何解密。
请建议我使用 wat api...
【问题讨论】:
-
也许你应该指定你的目标平台是什么。你是在 iPhone 上做这个吗?在 Mac OS X 上? 咳嗽 GNUstep ?
标签: objective-c
如何加密 nsstring 并将其存储在文件中,以及如何解密。
请建议我使用 wat api...
【问题讨论】:
标签: objective-c
这是我用来加密的函数。
DES_cfb64_encrypt( ( unsigned char * ) pchInputData, ( unsigned char * ) pchOutCipher, 大小, &schedule, &ParityKey, &no, DES_ENCRYPT );
我必须将其转换为 base64,以便将其存储在文件中。
pstrResult = Base64encoding(size,( unsigned char * )pchOutCipher);
【讨论】:
你可以使用 gpgme
【讨论】:
如果您只需要支持 10.5 或更高版本,您可以使用 CommonCryptor API。这篇文章的第一条评论显示了一个用于加密/解密 NSData 的示例类别:
http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html
【讨论】:
虽然不是 API 调用,但您可以实现一个简单的 XOR 密码。这实现起来既快速又简单,并且取决于您的字符串的特性(即,如果它是固定长度的)可能非常安全。如果您有一个可变长度的字符串 XOR 加密可能不够安全,具体取决于您的需要。看看Wikipedia article。
【讨论】:
如果您要存储密码,请先确定是否需要重新使用密码,或者是否只需要检查用户输入的密码是否正确。
如果你只需要验证用户输入的密码是否正确,那么使用哈希存储密码,并将用户输入的哈希与你存储的哈希进行比较。如果两个哈希值相等,则用户 [可能] 输入正确。在Wikipedia 上查看有关哈希的更多信息。
如果您需要重复使用密码(即用于通过其他服务进行身份验证,例如连接到 Internet 服务),请使用Apple's Keychain service。如果您的目标是 iPhone,请查看this 相关文档。
【讨论】: