Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1552 | Anzahl registrierter User: 1849 | Besucher online: 229
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

C# XOR Crypt


Autor: Gamer1208
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 1210
  
Kick it on dotnet-kicks.de  

Beschreibung:



Abgelegt unter: Crypt, C#, String, XOR, AES, AES256.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
using System.Collections.Generic;
using System.Text;

namespace Beispiele
{
    static class XORCrypt
   {
        private static string _b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijk.mnopqrstuvwxyz-123456789+/=";

        public static string Encode(string data, string key)
        {
            int keypos = 0;
            string binarydata = "";
            foreach (char c in data)
            {
                int xor = ((int)c ^ (int)key[keypos]) + (key.Length);
                Console.WriteLine("{0} = {1}\t{2} = {3}: {4} = {5}", c, (int)c, key[keypos], (int)key[keypos], xor, DecToBinary(xor, 8));
                if (++keypos >= key.Length)
                    keypos = 0;

                binarydata += DecToBinary(xor, 8);
            }

            int m = 0;
            string cipher = "";
            for (int i = 0; i < binarydata.Length; i += 4)
            {
                int v = BinToDec(binarydata.Substring(i, 4));
                cipher += GetB64FromN(v * 4 + m);
                Console.WriteLine("{0}\t{1}\t{2} {3}", v, v * 4 + m, m, GetB64FromN(v * 4 + m)[0]);
                if (++m > 3)
                    m = 0;
            }
            return cipher;
        }

        public static string Decode(string data, string key)
        {
            int m = 0;
            string binarydata = "";
            foreach (char c in data)
            {
                int v = (GetNFromB64(c) - m) / 4;
                binarydata += DecToBinary(v, 4);
                Console.WriteLine("{0}", DecToBinary(v, 4));
                if (++m > 3)
                    m = 0;
            }
            int keypos = 0;
            string decoded = "";
            for (int i = 0; i < binarydata.Length; i += 8)
            {
                if (i + 8 > binarydata.Length)
                    break;
                int c = BinToDec(binarydata.Substring(i, 8));
                int dc = (c - key.Length) ^ (int)key[keypos];
                Console.WriteLine("{0} = {1}", binarydata.Substring(i, 8), c);
                Console.WriteLine("               {0} - {1} ^ {2} = {3}", c, key.Length - 1, (int)key[keypos], (c - key.Length) ^ (int)key[keypos]);

                if (++keypos >= key.Length)
                    keypos = 0;

                decoded += new string((char)dc, 1);
            }
            return decoded;
        }

        private static int GetNFromB64(char n)
        {
            return _b64.IndexOf(n);
        }

        private static string GetB64FromN(int n)
        {
            if (n > _b64.Length)
                return "="; 

            return new string(_b64[n], 1);
        }

        private static string DecToBinary(int value, int length)
        {
            string binString = "";

            while (value > 0)
            {
                binString += value % 2;
                value /= 2;
            }

            string reverseString = "";
            foreach (char c in binString)
                reverseString = new string((char)c, 1) + reverseString;
            binString = reverseString;

            binString = new string((char)'0', length - binString.Length) + binString;

            return binString;
        }

        private static int BinToDec(string Binary)
        {
            return Convert.ToInt32(Binary, 2);
        }
    }
}

Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:
[C#] MD5 Verschlüsselung
[C#] Ein kleiner Konsolen Taschenrechner
[C#] Prüft Zeitformat auf 24 Stunden
[C#] Datei/Ordner durch Erweiterungsmethoden abfragen
[C#] GetCharts
[C#] XML in DataTable laden
[C#] Generische Between Methode
[ASP.net] Formularelement fokusieren auf Ajax Seiten
[C#] Quadratwurzel ziehen
[C#] Cast to Enum
[C#] ASP.NET: Metatags und Titel zur Laufzeit setzen
[C#] Aufrufenden Typ identifizieren
[C#] Kaufmännisches Runden in Decimal
[C#] WMI Getter
[C#] Sql Server Instanzen finden
[C#] WPF: Image aus dem Web in Image-Element anzeigen
[C#] Quoted Printable Encoder
[C#] URL auslesen
[C#] User-Verwaltung in eine ASP.NET Website einbauen
[C#] GUID des aktuellen Assembly ermitteln
[C#] Windows Forms Anwendungs-Sessions verwalten
[C#] User-Management für WPF Smart Client Anwendung
[C#] Silverlight Anwendung erstellen
[C#] User-Verwaltung in eine WinForm einbauen
[C#] Java WebService aus einem WinForms-Client aufrufen
[C#] C# Ist ein POINT zwischen ... und ...
[C#] NumTextBox (Kurzversion)
[C#] Another Bin-Watch (Console)
[C#] SystemIconsImageListWrapper
[C#] WatchedList
[C#] Datenbankverbindung herstellen
[C#] Einfache Ini Klasse
[C#] Youtube Download Klasse für C#
[C#] InputBox WPF C#
[C#] C# Ordner auslesen und in Liste speichern "rekursiv"
[C#] Hexcode eines Strings ausgeben
[VB.NET] Größe eines Strings berechnen
[C#] String bei bestimmten Zeichen splitten
[C#] Encode To ASCII - Buchstaben in Ascii-Werte umwandeln
[C#] Gibt den MD5 Hash eines Stings als String zurück.
[C#] String in Byte Array und zurück wandeln
[VB.NET] Den SHA1 Hash eines Strings ermitteln
[VB.NET] Den MD5 Hash eines Strings ermitteln
[C#] Wandelt ein Bytearray in einen Binärstring
[VB.NET] Text auf Bild zeichnen
[C#] String auf Emailadresse prüfen
[C#] SHA-1 Hash eines Strings erzeugen
[VB.NET] Strings schnell zählen
[VB.NET] Pfad kürzen
[VB.NET] Einfache Ähnlichkeitssuche (SQL)
[C#] Pfad kürzen
[C#] IsPositiveInteger as Extension Method
[C#] Datum und Zeit als String
[C#] String spiegeln
[VB.NET] String spiegeln
[C#] Erweiterung für Stringumwandlungen
[C#] Image in string wandeln und zurück
[C#] Strings komprimieren und dekomprimieren
[C#] CamelCase in Title Case konvertieren
[C#] Text zentriert in die Konsole schreiben
[VB.NET] Strings komprimieren und dekomprimieren
[C#] Fuzzy Suche
[VB.NET] Rows eines DataGridView in ein String-Array konvertieren
[C#] kontrolliert ob String eine gültige GUID ist
[C#] HTML aus einem String entfernen
[C#] byte-String in byte wandeln
[C#] Formelevaluierung aus RPN Form
[C#] Erzeugen eines zufälligen Strings
[C#] mehrfach vorkommende Worte entfernen
[C#] Determines whether the specified input is numeric
[C#] Prozentual Textvergleichen
[C#] doppelte Leerzeichen aus einem String entfernen
[C#] Zählt wie oft ein String in einem String vorkommt.
[C#] String kürzen ohne ein Wort abzuschneiden
[C#] String auf erlaubte Zeichen prüfen
[C#] Austauch von kritischen Zeichen in einem String...
[VB.NET] String in Byte Array und zurück wandeln
[C#] Gross- Kleinbuchstaben in String schnell zählen
[VB.NET] Listen, Arrays, Strings konvertieren
[C#] CRC32-Hash eines Strings
[VB.NET] CRC32-Hash eines Strings
[C#] Größe eines Strings berechnen
[VB.NET] String Splitten
[C#] Capitalize the first letter of every word
[VB.NET] Textdatei lesen und schreiben (String, StringArray, etc...)
[C#] Text2Bitmap (String in Bild umwandeln)
[C#] Double in String umwandeln (mit InvariantCulture)
[C#] String in Double umwandeln (mit InvariantCulture)
[C#] Convert MAC string to byte array
[C#] Reverse String
[C#] Stellt fest ob ein String ein Palindrom ist
[VB.NET] String umkehren
[C#] Letztes Wort aus einem String ermitteln
[C#] Erstes Wort aus einem String ermitteln
[VB.NET] List all controls by using the name of the controls
[C#] Alle E-Mail Adressen aus einem String bzw. Text filtern
[C#] StringSplitter
[C#] Fundstelle eines Suchbegriffs markieren
[C#] Initialisiert alle String-Properties
[C#] HTML Tags aus String entfernen
[C#] Geschachtelte Methode zur String-Bearbeitung
[C#] Byte Größenangaben als String formatieren (KB, MB, GB, ...)
[VB.NET] Permutation nachweisen
[C#] Implode und Trim für String-Enumerationen (Extension Method)
[C#] String zu MD5
[C#] Tabulatorzeichen durch Leerzeichen ersetzen
[C#] String in einzelne Wörter aufteilen und Wörter zählen
[VB.NET] Passwortgenerator
[C#] Render MVC Action as string
[C#] Namen von Klassenmember als String ermitteln
[C#] IncreaseString
[VB.NET] String uebers Netzwerk oder Internet and einen PC senden
[C#] String to char Tarnung
[C#] String-Formatierung für Faule: Erweiterungsmethode
[C#] Darstellung eines ASP.NET Steuerelementes als HTML-String
[C#] Verschlüsslung von Dateien mit Vernam
[VB.NET] Verschlüsslung von Dateien mit Vernam
[C#] XOR Verschlüsselung
[VB.NET] Werte zweier Variablen tauschen
[VB.NET] Dateientschlüsselung mit Rijndael
[VB.NET] Dateiverschlüsselung mit Rijndael
[VB.NET] Datenverschlüsselungsklasse

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.