2

我的 iOS 应用程序从主服务器发送和接收消息。我希望对这些消息进行加密。如何在 iOS6 上加密-解密 AES-256 字符串?有“本机”解决方案吗?

4

3 回答 3

6

OpenSSL 没有与 iOS 捆绑,但您仍然可以自己编译并将其链接到您的应用程序中。您还可以使用通用加密货币。

未捆绑 OpenSSL 的原因是,在不破坏与依赖旧版本的应用程序的兼容性的情况下,无法升级 OpenSSL 的系统版本。

您不应该“使用 AES-256”来加密您的消息,因为 AES-256 只是一种密码,它不会使您的消息安全。您应该使用更高级别的工具,例如 SSL 或 TLS。这样想:AES-256 就像一块砖。你想要一个房子。房子是安全的,你可以用砖砌房子。拥有一块砖并不能使您安全。使用 AES-256 并不能使您的协议安全。

于 2013-05-01T19:55:57.860 回答
0

我建议使用 CCCrypt 调用。

您可以在其他线程中查看示例:

iPhone 上 NSString 的 AES 加密

iOS 5:数据加密 AES-256 EncryptWithKey:未找到

另一方面,我认为迪特里希的选择更有意义。

于 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 回答