有份源码想请教各位,能帮我看看吗?
我分析一个网站的js代码时碰到下面这些
function byteToHexString( b) {
var hexDigits = new Array( "0 ", "1 ", "2 ", "3 ", "4 ", "5 ", "6 ",
"7 ",
"8 ", "9 ", "a ", "b ", "c ", "d ", "e ",
"f " );
var n = parseInt(b);
if (n < 0) {
n = 256 + n;
}
var d1 = parseInt(n / 16) ;
var d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
function xor(origin, key ) {
var result = " ";
key = parseInt( key );
for( var i=0; i <origin.length ; i++){
var x = parseInt( String( origin.charCodeAt(i)) );
result += byteToHexString( x ^ key) ;
}
return result;
}
调用时:
a=xor( "78e0d4f883e88219 ",100);
结果a的值是个64位的字符串,那个 x^key 看不懂,key传进去的是100,那不是x的100次方吗,那byteToHexString里的parseInt不会报错吗,最后的结果是怎么得出来的,我不太懂java,只是想把这两个函数用delphi写出来,麻烦大家帮帮忙看看~~
------解决方案--------------------不知道
------解决方案--------------------这个不是 Java,是 JavaScript!“^”不是次方,是按二进制的位进行异或运算。
------解决方案--------------------你要查一下JS里^的作用啦