我使用AES对文本“a”进行加密128Object-C AES 128未加密
我发现源代码在下面引发了互联网。
我试图改变密钥,但始终reuslt是一样的。
始终结果是8e4a3d4beb92d54c7e95f67d41daed59
NSString *key = @"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
// NSString *key = @"00000000000000000000000000000000";
plainText = @"a";
cipherData = [ [ plainText dataUsingEncoding:NSASCIIStringEncoding] AES128EncryptWithKey:key];
NSString * str = [self hexEncode : cipherData ];
NSLog(@"str = %@", str);
- (NSData*) iAESEncrypt:(NSString *)key keySize:(int)keySize {
if(key == nil)
return nil;
char keyPtr[keySize+1];
bzero(keyPtr, sizeof(keyPtr));
[key getCString: keyPtr maxLength: sizeof(keyPtr) encoding:NSUTF8StringEncoding];
size_t numBytesEncrypted = 0x00;
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
CCCryptorStatus result = CCCrypt(kCCEncrypt,
kCCAlgorithmAES128,
kCCOptionECBMode | kCCOptionPKCS7Padding,
keyPtr,
keySize,
NULL /*iv*/,
[self bytes], [self length],
buffer, bufferSize,
&numBytesEncrypted);
if(result == kCCSuccess)
return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
else
NSLog(@"iAESEncrypt FAIL!");
free(buffer);
return nil;
}
-(NSString *) hexEncode:(NSData*)data
{
NSMutableString *hex = [NSMutableString string];
unsigned char *bytes = (unsigned char *)[data bytes];
char temp[3];
NSUInteger i = 0;
for (i = 0; i < [data length]; i++)
{
temp[0] = temp[1] = temp[2] = 0;
(void)sprintf(temp, "%02x", bytes[i]);
[hex appendString:[NSString stringWithUTF8String:temp]];
}
return hex;
}
- (NSData*)AES128EncryptWithKey:(NSString*)key
{
return [self iAESEncrypt:key keySize:kCCKeySizeAES128];
}
谢谢你这么多 – HeyYo