2016-04-07 24 views
0

Ich versuche, Bibliothek Bouncy Castle zum Entschlüsseln zu verwenden. Die entschlüsselte Zeichenfolge ist jedoch nicht korrekt. Ich bekomme den Wert Aa1ŽYY445Ló, aber der korrekte Wert sollte Aa11YY445LL sein. Was mache ich falsch? Wenn ich versuche, Zeichenfolge auf http://rc4.online-domain-tools.com/ zu entschlüsseln, bekomme ich korrekte Ergebnisse.Entschlüsseln Zeichenfolge mit Bouncy Castle RC4-Algorithmus in C#

Codebeispiel:

string textToDecrypt = HexDumper.FromHex("E5497380DC724B28284D80"); 
var key = Encoding.UTF8.GetBytes("heslo"); 
var cipher = new RC4Engine(); 
cipher.Init(true, new KeyParameter(key)); 

byte[] inBytes = UTF8Encoding.GetEncoding(1252).GetBytes(textToDecrypt); 
byte[] outBuffer = new byte[1024 * 4]; 
cipher.ProcessBytes(inBytes, 0, inBytes.Length, outBuffer, 0); 

// Output must be 41 61 31 31 59 59 34 34 35 4c 4c -> Aa11YY445LL 
var textDecrypted = ASCIIEncoding.GetEncoding(1252).GetString(outBuffer); 
int indexOf0 = textDecrypted.IndexOf("\0"); 
if (indexOf0 > 0) 
{ 
    textDecrypted = textDecrypted.Substring(0, indexOf0); 
    MessageBox.Show(textDecrypted); 
} 

public static string FromHex(string hexString) 
{ 
    string StrValue = ""; 
    while (hexString.Length > 0) 
    { 
     StrValue += System.Convert.ToChar(System.Convert.ToUInt32(hexString.Substring(0, 2), 16)).ToString(); 
     hexString = hexString.Substring(2, hexString.Length - 2); 
    } 
    return StrValue; 
} 

Antwort

2

Das Problem ist Ihre FromHex Funktion.

Vertauschte es mit der obersten Antwort von How can I convert a hex string to a byte array? und bekam das richtige Ergebnis.

Nicht sicher, was speziell (in Bezug auf die Funktionalität) mit Ihrem FromHex falsch ist - Sie sollten das wahrscheinlich herausfinden.

Verwandte Themen