对于iOS,只能使用静态库,而不能使用具有动态库的框架。
取而代之的是使用CommonCrypto,它是普通的C但不是很难使用。确保您使用所有相同的设置,模式,IV(如果模式需要),填充和键。
添加Security.framework
到项目
#import <CommonCrypto/CommonCryptor.h>
+ (NSData *)doCipher:(NSData *)dataIn
iv:(NSData *)iv
key:(NSData *)symmetricKey
context:(CCOperation)encryptOrDecrypt
{
CCCryptorStatus ccStatus = kCCSuccess;
size_t cryptBytes = 0; // Number of bytes moved to buffer.
NSMutableData *dataOut = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES256];
ccStatus = CCCrypt(encryptOrDecrypt,
kCCAlgorithmAES256,
kCCOptionPKCS7Padding,
symmetricKey.bytes,
kCCKeySizeAES256,
iv.bytes,
dataIn.bytes,
dataIn.length,
dataOut.mutableBytes,
dataOut.length,
&cryptBytes);
if (ccStatus != kCCSuccess) {
// Handle error
NSLog(@"CCCrypt status: %d", ccStatus);
}
dataOut.length = cryptBytes;
return dataOut;
}
对于Base64的看到:SO answer
你特别需要什么加密函数? – zaph
解码base64字符串,然后解密字符串。这些字符串使用OpenSSL(AES-256)加密。 –
CommonCrypto(包含在iOS中)将轻松处理AES-256。对于Base64请参阅:http://stackoverflow.com/questions/392464/any-base64-library-on-iphone-sdk/800976#800976 – zaph