各位大神异或加密怎么避免特殊字符问题呢?

超哥_Victor 2018-09-14 11:50:59
如下这样的异或加密, 如果输入20269 , 密钥只要不是AAAAAAAAAA这样,基本都能得出带有特殊符号的.比如{}`等等, 怎么才能不让他加密结果带有特殊字符呢?
    NSData* bytes = [string dataUsingEncoding:NSUTF8StringEncoding];

Byte *myByte = (Byte *)[bytes bytes];

NSData* keyBytes = [xorKey dataUsingEncoding:NSUTF8StringEncoding];

Byte *keyByte = (Byte *)[keyBytes bytes];

int keyIndex = 0;

for (int x = 0; x < [bytes length]; x++)
{
myByte[x] = myByte[x] ^ keyByte[keyIndex];

NSLog(@">>>>>>>> %hhu",myByte[x]);
if (++keyIndex == [keyBytes length])
{
keyIndex = 0;
}
}
//可以直接返回NSData
NSData *newData = [[NSData alloc] initWithBytes:myByte length:[bytes length]];
NSString *aString = [[NSString alloc] initWithData:newData encoding:NSUTF8StringEncoding];

return aString;


...全文
1472 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
结果是特殊字符很正常吧?二进制的。 如果想输出给人看,可以转换成16进制的方式输出。

29,031

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧