我分析一个网站的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写出来,麻烦大家帮帮忙看看~~
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写出来,麻烦大家帮帮忙看看~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货