如何将Javascript代码转换为C#代码
我有一个Javascript方法。我在C#上写过,但没用 Javascript代码如何将Javascript代码转换为C#代码,c#,javascript,C#,Javascript,我有一个Javascript方法。我在C#上写过,但没用 Javascript代码 var __AM = 65521; function cc(a) { var c = 1, b = 0, d, e; for (e = 0; e < a.length; e++) { d = a.charCodeAt(e); c = (c + d) % __AM; b = (b + c) % __
var __AM = 65521;
function cc(a) {
var c = 1, b = 0, d, e;
for (e = 0; e < a.length; e++) {
d = a.charCodeAt(e);
c = (c + d) % __AM;
b = (b + c) % __AM;
}
return b << 16 | c;
}
结果:1132332429
C#测试
结果:172781421
如何在C#中获取JS值?此代码有效:
private string cc(string a)
{
var __AM = 65521;
int e;
long d;
long c = 1, b = 0;
for (e = 0; e < a.Length; e++)
{
d = (int)a[e];
c = (c + d) % __AM;
b = (b + c) % __AM;
}
return (b << 16 | c).ToString();
}
私有字符串cc(字符串a)
{
var_uam=65521;
INTE;
长d;
长c=1,b=0;
对于(e=0;e 返回(b尝试byte[]p=Encoding.ASCII.GetBytes(a);
在循环外部使用d=p[e]
b.ToString()+c.ToString()
肯定不等同于b这是Adler-32校验和算法。也许在C#中有一个内置的实现?我不知道。这是错误的。因为当它被转换为字节时。只有数组的第一个值可用。没有理由将其转换为字节。字符串基本上是字符[]。只需将字符转换为int,您就可以得到字符代码。不过,JavaScript总是以UNICODE格式处理字符串,我对C#不太了解,但可能字符串的处理方式不同。此代码肯定适用于任何“a-z 0-9”字符串,但特殊字符如何?这是值得进一步测试的。
cc("4JipHEz53sU1406413803");
CC("4JipHEz53sU1406413803");
private string cc(string a)
{
var __AM = 65521;
int e;
long d;
long c = 1, b = 0;
for (e = 0; e < a.Length; e++)
{
d = (int)a[e];
c = (c + d) % __AM;
b = (b + c) % __AM;
}
return (b << 16 | c).ToString();
}