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

Sil*_*ian 14 javascript encryption xor

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

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

 $x = ($y ^ $z);
Run Code Online (Sandbox Code Playgroud)

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

我试过了:

 $x = String.fromCharCode(($y).charCodeAt(0).toString(2) ^ ($z).charCodeAt(0).toString(2));
Run Code Online (Sandbox Code Playgroud)

但它得到了不同的结果.

zzz*_*Bov 23

您无需将其转换回字符串.按位运算符处理数字.1 ^ 3101 ^ 112相同,1 ^ 1033相同.

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


cop*_*opy 10

toString(2)二进制转换字符串,但你想上的数字式工作.

只需放下toString(2)零件即可.