2014-01-16 60 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