Feedback

C# - RC4 Verschlüsselung

Veröffentlicht von am 20.07.2007
(1 Bewertungen)
RC4 ist ein einfacher aber sicherer Verschlüsselungsalgorithmus. Weitere Details findest man bei Wikipedia:

http://de.wikipedia.org/wiki/Rc4

Beispielaufruf:

Byte[] Key = { 25, 64, 1, 45, 54, 45 };
Byte[] Content = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Byte Array verschlüsseln
RC4(ref Content, Key);

// Byte Array entschlüsseln
RC4(ref Content, Key);
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

public void RC4(ref Byte[] bytes, Byte[] key)
{
    Byte[] s = new Byte[256];
    Byte[] k = new Byte[256];
    Byte temp;
    int i, j;

    for (i = 0; i < 256; i++)
    {
        s[i] = (Byte)i;
        k[i] = key[i % key.GetLength(0)];
    }

    j = 0;
    for (i = 0; i < 256; i++)
    {
        j = (j + s[i] + k[i]) % 256;
        temp = s[i];
        s[i] = s[j];
        s[j] = temp;
    }

    i = j = 0;
    for (int x = 0; x < bytes.GetLength(0); x++)
    {
        i = (i + 1) % 256;
        j = (j + s[i]) % 256;
        temp = s[i];
        s[i] = s[j];
        s[j] = temp;
        int t = (s[i] + s[j]) % 256;
        bytes[x] ^= s[t];
    }
}

2 Kommentare zum Snippet

Jan Welker schrieb am 20.07.2007:
Super!
Soweit ich weis ist RC4 nicht im .NET Framework 2.0 enthalten.
Methoden die byte[] in string wandeln (und zurück)sind ja hier auch zu finden um dann mit dieser Methode strings zu verschlüsseln.
Kalle schrieb am 14.03.2010:
Hallo, versuche jetz seit einer Stunde diese Funktion zum Laufen zu bringen.
Leider funktioniert es nicht ...
T = (s(i) + s(j)) Mod 256

Hier tritt bei mir der Fehler :"Die arithmetische Operation hat einen Überlauf verursacht." auf.
Wieso?
Hilfe ^^
 

Logge dich ein, um hier zu kommentieren!