我的 iOS 应用程序从主服务器发送和接收消息。我希望对这些消息进行加密。如何在 iOS6 上加密-解密 AES-256 字符串?有“本机”解决方案吗?
问问题
2753 次
3 回答
6
OpenSSL 没有与 iOS 捆绑,但您仍然可以自己编译并将其链接到您的应用程序中。您还可以使用通用加密货币。
未捆绑 OpenSSL 的原因是,在不破坏与依赖旧版本的应用程序的兼容性的情况下,无法升级 OpenSSL 的系统版本。
您不应该“使用 AES-256”来加密您的消息,因为 AES-256 只是一种密码,它不会使您的消息安全。您应该使用更高级别的工具,例如 SSL 或 TLS。这样想:AES-256 就像一块砖。你想要一个房子。房子是安全的,你可以用砖砌房子。拥有一块砖并不能使您安全。使用 AES-256 并不能使您的协议安全。
于 2013-05-01T19:55:57.860 回答
0
于 2013-05-01T20:01:06.110 回答
0
是的,iOS 6 支持 OpenSSL。
使用这个:首先在你的项目中添加安全框架。
然后使用此加密/解密类别创建类别
然后导入:
#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
希望它可以帮助你。
于 2013-05-01T19:55:50.600 回答