Tag: 异或

UInt8 XOR'd数组结果到NSString的转换每次都返回nil

我遇到的问题与iOS Swift 2.0在[UInt8]上执行XOR并将XORd结果转换为string。 我不得不与一个粗糙的服务器进行交互,该服务器想要使用预定义的UInt8值数组进行简单的XORencryption,并将结果作为string返回。 使用iOS Swift 2.0 Playground,创build以下数组: let xorResult : [UInt8] = [24, 48, 160, 212] // XORd result let result = NSString(bytes: xorResult, length: xorResult.count, encoding: NSUTF8StringEncoding) 结果总是零。 如果从数组中删除160和212的值,NSString不是零。 如果我切换到NSUTF16StringEncoding然后我不收到零,但是,服务器不支持UTF16。 我已经尝试将值转换为hexstring,然后将hexstring转换为NSData,然后尝试将其转换为NSUTF8StringEncoding,但仍然零,直到我删除了160和212.我知道这个algorithm在Java中工作,但是在Java中,重新使用char和StringBuilder的组合,一切都很开心。 有没有在iOS Swift中解决这个问题的方法?