首先将data转换为byte,然后对byte进行操作,以下对data进行简单的加密进行举例,比如将所有字符ASCII码加1
-(NSData *) encryptData (NSData *)data {
int lengthTemp = [data length];
char *bytesTemp = malloc(lengthTemp+1);
[data getBytes:bytesTemp :lengthTemp];
bytesTemp[lengthTemp] = 0;
for (int i=0; bytesTemp[i]; i++) {
bytesTemp[i]++;
}
return [[[NSData alloc] initWithBytes:byteTemp length:lengthTemp] autorelease];
}
--------------------------------------------------------------------------------------------------------------------------
自己发现了BUG,如果data中包含数据为0的字符的话就会解密失败了。。。这样处理是偷懒拷贝的一个开源XML文件解析XML文件的代码。现进行修正如下:
-(NSData *) encryptData (NSData *)data {
int lengthTemp = [data length];
char *bytesTemp = malloc(lengthTemp);
[data getBytes:bytesTemp :lengthTemp];
for (int i=0; i<lengthTemp; i++) {
bytesTemp[i]++;
}
return [[[NSData alloc] initWithBytes:byteTemp length:lengthTemp] autorelease];
}