2014-01-16 39 views
-5

任何一个优秀的JScript代码转换为C# 我想这段代码转换成C# 此代码是从设备生成的管理员密码基本MAC地址JScript代码到C#

<script language="jscript"> 
    var add=[12,2,17,5,16,31,28,10,16,20,22,1]; 
    var subst={58:122,59:121,60:120,61:119,62:118,63:117,64:116,91:115,92:114,93:113,94:112,45:111,96:110}; 

    function generatePassword(input){ 
    var inputMac=input.replace(/:/g,"").toUpperCase(); 
    var macPassword=""; 
if((inputMac.search(/^[A-F0-9]{12}$/)==-1) || (inputMac =="000000000000")){ 
    return macPassword="invalid"} 
else{ 
    var b; 
    var a; 
    var c=""; 
    for(b=0;b<12;b++){ 
     a=inputMac.charCodeAt(b)+add[b]; 
     if(subst[a]){ 
      a=subst[a] 
     } 
     c+=String.fromCharCode(a) 
    } 
    return macPassword="2008"+c+""; 
    } 
}; 
</script> 
+0

以上使用的所有函数都存在于c#中,你有没有尝试编码自己!? –

+0

C#上的这个相当于什么?我很困惑这两部分,我试图编码它。 var add = [12,2,17,5,16,31,28,10,16,20,22,1]; var subst = {58:122,59:121,60:120,61:119,62:118,63:117,64:116,91:115,92:114,93:113,94:112,45 :111,96:110}; – user1594906

+0

第一个好,我可以看到是正常的int数组,并且不知道在jscript中是什么? –

回答

0

我不知道从JScript到C#的任何转换器,只能反过来。对这些我甚至没有很好的意见。国际海事组织,有太多的语言和框架的具体细节,“传译”真的很好。

我不知道你在哪里找到你发布的代码,因为基于评论,你并不真正了解JScript。我希望你最好在C#中,这样你至少会明白转换的功能:

public string GeneratePassword(string input) 
{ 
    var add= new byte[] {12,2,17,5,16,31,28,10,16,20,22,1}; 
    var subst = new Dictionary<byte, byte> {{58,122},{59,121},{60,120},{61,119},{62,118},{63,117},{64,116},{91,115},{92,114},{93,113},{94,112},{45,111},{96,110}}; 

    var inputMac = input.Replace(":", "").ToUpperInvariant(); 
    if (!Regex.IsMatch(inputMac, "^[A-F0-9]{12}$") || (inputMac == "000000000000")) 
    { 
     return "invalid"; 
    } 
    else 
    { 
     var c=""; 
     for(var b = 0; b < 12; b++) 
     { 
      var a = (byte)((byte)inputMac[b] + add[b]); 
      if(subst.ContainsKey(a)) 
      { 
       a=subst[a]; 
      } 
      c += (char)a; 
     } 
     return "2008" + c; 
    } 
} 

的C#代码可以进一步提高,但我想保持它作为接近原始越好,以便您可以了解特定结构的差异,并在将来自己做,而不仅仅是按原样使用转换后的代码。

只是好奇:你打算如何使用这个功能?

+0

表示感谢。有用。我知道如何转换剩下的东西,我感到困惑的是第一行两行,我不知道C#中究竟是什么。 – user1594906