Как преобразовать значение из специального символа в строку с ключевым словом - PullRequest
0 голосов
/ 18 января 2020

У меня есть специальные символы, которые я конвертирую с помощью этого кода.

    public static string FromHex(string sText)
    {
        var bytes = StringToByteArray(sText);
        var latinEncoding = Encoding.GetEncoding(1252);
        var result = latinEncoding.GetString(bytes);
        return result;
    }
    public static byte[] StringToByteArray(string hex)
    {
        return Enumerable.Range(0, hex.Length)
                         .Where(x => x % 2 == 0)
                         .Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
                         .ToArray();
    }

и призываю вот так

string prFromHex = modEncryptText.FromHex("BAA37D40186D").ToString();

я получил результаты: º £} @ \ u0018m и я хочу, чтобы он конвертировался в строку с ключевым словом «пароль», и результат должен быть «СОБЫТИЯ». Я хочу преобразовать свой VB-код в C# язык, вот мой VB-код.

Public Function CryptRC4(ByRef sText As String, ByRef sKey As String) As String
    Dim baS(255) As Byte
    Dim baK(255) As Byte
    Dim bytSwap As Byte
    Dim lI As Integer
    Dim lJ As Integer
    Dim lIdx As Integer
    CryptRC4 = ""

    For lIdx = 0 To 255
        baS(lIdx) = lIdx
        baK(lIdx) = Asc(Mid(sKey, 1 + (lIdx Mod Len(sKey)), 1))
    Next
    For lI = 0 To 255
        lJ = (lJ + baS(lI) + baK(lI)) Mod 256
        bytSwap = baS(lI)
        baS(lI) = baS(lJ)
        baS(lJ) = bytSwap
    Next
    lI = 0
    lJ = 0
    For lIdx = 1 To Len(sText)
        lI = (lI + 1) Mod 256
        lJ = (lJ + baS(lI)) Mod 256
        bytSwap = baS(lI)
        baS(lI) = baS(lJ)
        baS(lJ) = bytSwap
        CryptRC4 = CryptRC4 & Chr(pvCryptXor(baS((CInt(baS(lI)) + baS(lJ)) Mod 256), Asc(Mid(sText, lIdx, 1))))
    Next
End Function

Private Function pvCryptXor(ByVal lI As Integer, ByVal lJ As Integer) As Integer
    If lI = lJ Then
        pvCryptXor = lJ
    Else
        pvCryptXor = lI Xor lJ
    End If
End Function
...