我正在为iOS实现一些解密代码,用于源自我无法控制的服务器上的消息.所以解密要求是:
Cipher Method : AES256
Cipher Mode: ECB
Padding: PKCS5Padding
Run Code Online (Sandbox Code Playgroud)
由于我最初的试验未能解密.所以我玩了一些测试向量,看看我使用的代码是对的,
这是加密数据的代码:
NSString+AESCrypt.h
-------------------
#import <Foundation/Foundation.h>
#import "NSData+AESCrypt.h"
@interface NSString (AESCrypt)
- (NSString *)AES256EncryptWithKey:(NSString *)key;
- (NSString *)AES256DecryptWithKey:(NSString *)key;
@end
NSString+AESCrypt.m
-------------------
#import "NSString+AESCrypt.h"
@implementation NSString (AESCrypt)
- (NSString *)AES256EncryptWithKey:(NSString *)key
{
NSData *plainData = [self dataUsingEncoding:NSUTF8StringEncoding];
NSData *encryptedData = [plainData AES256EncryptWithKey:key];
NSString *encryptedString = [encryptedData base64Encoding];
return encryptedString;
}
- (NSString *)AES256DecryptWithKey:(NSString *)key
{
NSData *encryptedData = [NSData dataWithBase64EncodedString:self];
NSData *plainData = [encryptedData AES256DecryptWithKey:key];
NSString *plainString = …
Run Code Online (Sandbox Code Playgroud)