JavaScript - 字符串上的按位异或?

时间:2012-02-11 02:12:01

标签: javascript encryption xor

我正在将加密函数从PHP翻译成JS。

PHP :( $ y和$ z都是ASCII字符,所以$ x本质上是一个ASCII奇怪的。)

 $x = ($y ^ $z);

在JS中执行相同操作会导致$ x = 0.

我试过了:

 $x = String.fromCharCode(($y).charCodeAt(0).toString(2) ^ ($z).charCodeAt(0).toString(2));

但它得到了不同的结果。

2 个答案:

答案 0 :(得分:22)

您无需将其转换回字符串。按位运算符处理数字。 1 ^ 3 10 1 ^ 11相同 2 1 ^ 10 3 相同。

//this should work for single characters.
x = String.fromCharCode(y.charCodeAt(0) ^ z.charCodeAt(0));

答案 1 :(得分:10)

toString(2)会转换为二进制字符串,但您希望处理数字类型。

只需删除toString(2)部分即可。

相关问题