我的iOS应用程序从主服务器发送和接收消息。我想要加密这些消息。如何在iOS6上加密 - 解密AES-256字符串?有“原生”解决方案吗?
答案 0 :(得分:6)
OpenSSL不与iOS捆绑在一起,但您仍可以自行编译并将其链接到您的应用程序中。您也可以使用Common Crypto。
OpenSSL未捆绑的原因是因为在不破坏与依赖旧版本的应用程序的兼容性的情况下无法升级系统版本的OpenSSL。
你不应该“使用AES-256”加密你的邮件,因为AES-256只是一个密码,不确保你的邮件安全。您应该使用更高级别的工具,如SSL或TLS。可以这样想:AES-256就像一块砖。你想要一所房子。房子是安全的,你可以用砖建造房屋。拥有一块砖不会让你安全。使用AES-256不会使您的协议安全。
答案 1 :(得分:0)
是iOS 6支持OpenSSL。
使用此: 首先在项目中添加安全框架。
然后使用此Encryption/Decryption Category
创建类别然后导入:
#import <CommonCrypto/CommonCryptor.h>
#import "NSData+Encryption.h"
使用这些:
- (NSData*) encryptString:(NSString*)plaintext withKey:(NSString*)key {
return [[plaintext dataUsingEncoding:NSUTF8StringEncoding] AES256EncryptWithKey:key];
}
- (NSString*) decryptData:(NSData*)ciphertext withKey:(NSString*)key {
return [[[NSString alloc] initWithData:[ciphertext AES256DecryptWithKey:key]
encoding:NSUTF8StringEncoding] autorelease];
}
查看此链接: ios-openssl
希望它对你有所帮助。
答案 2 :(得分:0)
我建议使用CCCrypt调用。
您可以在其他主题中看到示例:
AES Encryption for an NSString on the iPhone
iOS 5: Data encryption AES-256 EncryptWithKey: not found
另一方面,我认为迪特里希选项更有意义。