gpt4 book ai didi

ios - 通过指针地址修改只读 NSData 是否安全?

转载 作者:行者123 更新时间:2023-11-28 22:10:30 25 4
gpt4 key购买 nike

我想如下所示对 NSData 执行 XOR 操作,像这样修改只读 NSData(非 ARC)是否安全?我试过了,确实有效。

    @implementation NSData (Additions)

- (void)xorWithByteKey:(Byte)keyByte
{
char *curDataPtr = (char *)self.bytes;

for (int x = 0; x < self.length; x++)
{
*curDataPtr = *curDataPtr ^ keyByte;
curDataPtr++;
}
}

@end

最佳答案

从看CFData source code你正在做的事情似乎是安全的。我快速搜索了对 _bytes 的引用(这是您直接访问的内容),但没有任何结果。

尽管您真的想冒险依赖这样的实现细节吗?通过数据的 NSMutableData 副本并改为修改它的代码成本是否太高?

在这个类别中(警告,未经测试):

@interface NSData (xoring)
- (NSData *) xorWithByteKey: (Byte) b ;
@end

@implementation NSData (xoring)

- (NSData *) xorWithByteKey: (Byte) b {

NSMutableData * copy = [self mutableCopy] ;

char *p = (char *)copy.bytes;

for (NSUInteger i = 0, length = copy.length ; i < length; ++i) {
Byte c = *p ;
c ^= b ;
*p++ = c ;
}
return copy ;
}

@结束

关于ios - 通过指针地址修改只读 NSData 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23060244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com