我正在将加密函数从
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));
但它得到了不同的结果.
解决方法
您不需要将其转换回字符串.按位运算符处理数字. 1 ^ 310与1 ^ 112相同,1 ^ 103与1 ^ 103相同.
//this should work for single characters. x = String.fromCharCode(y.charCodeAt(0) ^ z.charCodeAt(0));