不要从网上下的工具转,大多都有错的      Public Function aa(ByVal s As String) As String
            Dim kl As Integer = XORKey.Length, XORTorF As Boolean, sTp As Integer = 1
            If String.IsNullOrEmpty(s.Trim) = True Then Return ""
            Dim iPos As Integer
            Dim sCode As String = ""
            XORTorF = s.Substring(0, 1) = "-"            If XORTorF = True Then
                s = s.Substring(1)
                sTp = 2            End If
            Dim l As Long = s.Length
            Dim a As String
            For i As Long = 0 To l - 1 Step sTp
                If iPos >= kl Then iPos = 0
                Dim b As String = XORKey.Substring(iPos, 1)
                If XORTorF = True Then
                    a = s.Substring(i, 2)
                    Dim c As Integer = CDec("&H" & a)
                    sCode += Chr(c Xor Asc(b))
                Else
                    a = s.Substring(i, 1)
                    a = Hex(Asc(a) Xor Asc(b))
                    a = IIf(Len(a) < 2, "0" + a, a)
                    sCode += a
                End If                iPos += 1            Next
                Return IIf(XORTorF = True, sCode, "-" & sCode)
        End Function

解决方案 »

  1.   


    int kl=XORKey.length;
    bool XORTorF;
    int sTp=1;
    if(s==null||s.trim()=="")
    return "";
    int iPos;
    string sCode="";
    XORTorF=s.substring(0,1)="-";
    If XORTorF
    {
    s = s.Substring(1)
    sTp = 2
    }
    long l=s.length;
    string a;
    for(long i=0;i<l-1;i+=sTp)
    {
    if(iPos>=kl)iPos=0;
    string b=XORKey.substring(iPos,1);
    if(XORTorF)
    {
    a=s.substring(i,2);
    int c=CDec("&H"&a);
    sCode+=Chr(c Xor Asc(b));
    }
    else
    {
    a = s.Substring(i, 1)
    a = Hex(Asc(a) Xor Asc(b))
    a = IIf(Len(a) < 2, "0" + a, a)
    }
    iPos+=1;
    }
    return IIf(XORTorF,sCode,"-"&sCode)不知道对不对
      

  2.   

    关键是XORKey是在代码外部定义的。
    把依赖问题要解决。
      

  3.   


    XORKey 我有定义的,没写上来呵呵,帮我转换了就行