Can';t从JS刮到c#
有一个简单的代码可以对JS执行CRC32检查。我正在把所有的页面都刮下来,并试图模仿所有的字符串。我对该函数的计算部分有一个问题,尤其是Can';t从JS刮到c#,c#,javascript,C#,Javascript,有一个简单的代码可以对JS执行CRC32检查。我正在把所有的页面都刮下来,并试图模仿所有的字符串。我对该函数的计算部分有一个问题,尤其是chlg变量: var c = 354939801 var slt = "zws0mUwF" var s1 = 'h' var s2 = 'l' var n = 4 var start = s1.charCodeAt(0); var end = s2.charCodeAt(0); var arr = new Array(n); var m = Math.po
chlg
变量:
var c = 354939801
var slt = "zws0mUwF"
var s1 = 'h'
var s2 = 'l'
var n = 4
var start = s1.charCodeAt(0);
var end = s2.charCodeAt(0);
var arr = new Array(n);
var m = Math.pow(((end - start) + 1),n);
for (var i=0; i<n; i++)
arr[i] = s1;
for (var i=0; i<m-1; i++)
{
for(var j=n-1; j>=0;--j)
{
var t = arr[j].charCodeAt(0);
t++;
arr[j] = String.fromCharCode(t);
if (arr[j].charCodeAt(0)<=end)
{
break;
}
else
{
arr[j] = s1 ;
}
}
var chlg = arr.join("");
}
对于s1='h'
和s2='l'
我总是得到'll'
,当JS代码得到'hkkm'
,'mkkl'
等。
为什么会这样?为什么JS总是随机计算呢?您总是将“hhhi”分配给chlg的javascript。如果您想要c#中的等效值,这里有一个转换:
public void Challenge()
{
var c = 354939801;
var slt = "zws0mUwF";
var s1 = 'h';
var s2 = 'l';
var n = 4;
var start = (int)s1;
var end = (int)s2;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
var m = Math.Pow((start - end) + 1, n);
for (int i = 0; i < n; i++)
{
sb.Append(s1);
}
var str = sb.ToString().ToCharArray();
for (int i = 0; i < (m - 1); i++)
{
for (int j = n - 1; j >= 0; --j)
{
var t = (int)str[j];
t++;
str[j] = (char)t;
if ((int)str[j] <= (int)end)
{
break;
}
else
{
str[j] = s1;
}
}
var chlg = str.ToString();
}
}
public void Challenge()
{
var c=354939801;
var slt=“zws0mUwF”;
变量s1='h';
变量s2='l';
var n=4;
var start=(int)s1;
var end=(int)s2;
System.Text.StringBuilder sb=新的System.Text.StringBuilder();
var m=数学功率((开始-结束)+1,n);
对于(int i=0;i=0;--j)
{
var t=(int)str[j];
t++;
str[j]=(char)t;
如果((int)str[j]
public void Challenge()
{
var c = 354939801;
var slt = "zws0mUwF";
var s1 = 'h';
var s2 = 'l';
var n = 4;
var start = (int)s1;
var end = (int)s2;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
var m = Math.Pow((start - end) + 1, n);
for (int i = 0; i < n; i++)
{
sb.Append(s1);
}
var str = sb.ToString().ToCharArray();
for (int i = 0; i < (m - 1); i++)
{
for (int j = n - 1; j >= 0; --j)
{
var t = (int)str[j];
t++;
str[j] = (char)t;
if ((int)str[j] <= (int)end)
{
break;
}
else
{
str[j] = s1;
}
}
var chlg = str.ToString();
}
}