解码函数并获取 Microsoft VBScript 运行时错误“800a000d”

Decode Function and get Microsoft VBScript runtime error '800a000d'

我有密码

Function DeCrypt(strName)
  if strName <> ""  then   
    g_KeyLocation = "m:\mysvr_src\mycart_svr.txt"
    'g_Key = mid(ReadKeyFromFile(g_KeyLocation),1,Len(strName))
    g_Key="gsovjrcenzhqjxigkhuhkfmabwxuzsuexvypfohbkmhdilihfbvhgfzccckvafoazynbhyeexinfwmeaesjzhwtqyaaybvghxwyfmewamhqwygaaqcbjklyeblidcvapajwdumodndhdkaauzxqnohrgvezmznbmtfyuadkbjrdbedjwsarlqpejrzszqdlkngwfdlphnswqewdtedwensocyqcryzkxtegmarfkiycyhloatbwtcxyzdyvpwjcovvtqodlxegmzletfxpiejlomorotgnpxeybqsclioisuoixvanwndpnerpyfaudkdivpjukeualkmgdkmpfvjszpxmqzcjwrfurmkolbibhvedqlsqzbyzdhqdicjqxesbhjtrskogydnhnndjviusctgipptulmdyhfhkkvxkajkazedplpuganevendeqcvgjeyaqvugfmupexcdlyvucdumrwmapofseeqvpyopfonhfgmsmjxrmdoztsqqnk"
    count = 1
    while InStr(strname,"_")
      iKeyChar = (Asc(mid(g_Key,count,1)))
      strName = Mid(strName,2,len(strName)-1) 
      if InStr(strName,"_")-1 = -1 then 
        iStringChar = strName
      else
        iStringChar = Mid(strName,1,InStr(strName,"_")-1)
      end if 
      iDeCryptChar = iKeyChar Xor iStringChar
      strDecrypted = strDecrypted & Chr(iDeCryptChar) 
      strName = Right(strName,len(strName)-instr(strName,"_")+1)
      count = count + 1
    wend
    deCrypt = strDecrypted 
  else
    deCrypt = ""
  end if
End Function

我得到了一些正确的结果然后它停止并向我显示这个错误:

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'iStringChar'

错误在这一行:

iDeCryptChar = iKeyChar Xor iStringChar

该错误实际上是不言自明的。您不能将整数与字符串异或。当然你会得到一个类型不匹配。

改变这个:

if InStr(strName,"_")-1 = -1 then 
  iStringChar = strName
else
  iStringChar = Mid(strName,1,InStr(strName,"_")-1)
end if 

进入这个:

如果 InStr(strName,"_")-1 = -1 那么
  iStringChar = <b>Asc(</b>strName<b>)</b>
别的
  iStringChar = <b>Asc(</b>Mid(strName,1,InStr(strName,"_")-1)<b>)</b>
如果
结束