Я пытаюсь зашифровать строку в Xcode для PHP с помощью метода AES128, используя следующий код:шифрования AES не работает (Xcode)
Xcode
- (NSData*)AES256EncryptWithKey:(NSString*)key {
char keyPtr[kCCKeySizeAES256];
[key cStringUsingEncoding:NSASCIIStringEncoding];
NSString *iv = @"fdsfds85435nfdfs";
char ivPtr[kCCKeySizeAES128];
[iv getCString:ivPtr maxLength:sizeof(ivPtr) encoding:NSASCIIStringEncoding];
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void* buffer = malloc(bufferSize);
size_t numBytesEncrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, NULL,
keyPtr, kCCKeySizeAES256,
ivPtr,
[self bytes], dataLength,
buffer, bufferSize,
&numBytesEncrypted);
if (cryptStatus == kCCSuccess)
{
return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
}
free(buffer); //free the buffer;
return nil;
}
Но когда я запускаю выше кодирования, после результат не то, что я ожидал, что:
NSString *key = @"89432hjfsd891787";
NSData *plaintext = [[@"aaa0000000000000" dataUsingEncoding:NSASCIIStringEncoding] AES256EncryptWithKey: key];
NSString *mystring = [[NSString alloc] initWithData:plaintext encoding:NSASCIIStringEncoding];
NSLog(@"mystring %@", mystring);
ВЫВОД является
uçó) â½S/èR
Что я хочу, чтобы это было так.
m9FNGM9IiwibWFjIjoiNmJkYzNmZTA5
BTW, Xcode - просто причудливый редактор/компилятор/отладчик. Код в этом случае - Objective-C. – zaph