1
我試圖將已經用AES256加密加密的NSData
對象轉換爲base64 NSData對象。我的印象是,我無法直接將使用AES256加密技術加密的NSData
對象轉換爲NSString,我必須先將其轉換爲base64。如何將使用AES256編碼的NSData轉換爲base64?
那麼如何將NSData對象轉換爲base64數據對象?我需要將base64數據對象轉換爲NSString。
我發現這個方法,但我不知道如何使用下面的方法將我的NSData對象轉換爲base64。
- (NSString*)base64forData:(NSData*)theData {
const uint8_t* input = (const uint8_t*)[theData bytes];
NSInteger length = [theData length];
static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/=";
NSMutableData* data = [NSMutableData dataWithLength:((length + 2)/3) * 4];
uint8_t* output = (uint8_t*)data.mutableBytes;
NSInteger i;
for (i=0; i < length; i += 3) {
NSInteger value = 0;
NSInteger j;
for (j = i; j < (i + 3); j++) {
value <<= 8;
if (j < length) {
value |= (0xFF & input[j]);
}
}
NSInteger theIndex = (i/3) * 4;
output[theIndex + 0] = table[(value >> 18) & 0x3F];
output[theIndex + 1] = table[(value >> 12) & 0x3F];
output[theIndex + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '=';
output[theIndex + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '=';
}
return [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
}
這個方法應該這樣做。像這樣使用它:'NSString * b64 = [self base64forData:myNsData];' – dasblinkenlight 2012-08-17 01:10:56
@dasblinkenlight感謝您的幫助,如果你回答這個問題,不好意思給你信用。 – Chris 2012-08-18 01:20:17
當然,沒問題:) – dasblinkenlight 2012-08-18 01:25:50