/*
NSData *keyData = [@"woshikey" dataUsingEncoding:NSUTF8StringEncoding];
NSData *encodedata = [self xorData:data withKey:keyData];
*/
- (NSData *)xorData:(NSData *)sourceData withKey:(NSData *)keyData {
//取关键字的Byte数组
Byte *keyBytes = (Byte *)[keyData bytes];
//取需要加密的数据的Byte数组
Byte *sourcePoint = (Byte *)[sourceData bytes];
for (long i = 0; i < [sourceData length]; i++) {
// key可以任意长度
long index = i % [keyData length];
// NSLog(@"%ld index=%ld",i,index);
//然后按位进行异或运算
sourcePoint[i] = sourcePoint[i] ^ keyBytes[index];
}
return sourceData;
}
网友评论