Crypt-Modul
Übersicht

m a j o rBetreff: Crypt-Modul |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sooo, hab vor längerer Zeit schon n bisschen mit Verschlüsselung
rumgespielt. Rausgekommen is dieses simple Modul. Um direkt einmal Missverständnissen vorzubeugen: Es dient keinesfalls dazu irgendwelche hochsensible Regierungsdateien zu verschlüsseln... Wer so etwas in der Richtung hiermit unternimmt, ist selber schuld ^^ Ich benutze es z.B. zum Verschlüsseln von Spielerdaten; nur der Spieler mit dem richtigen Passwort kann drauf zugreifen, etc... Z.z. ist es bei mir im Einsatz zur Datenübertragung(Server->Client). Noch etwas vorweg: Ich habe keine Ahnung wie sicher diese Verschlüsselung ist, für Rückantworten hierzu wäre ich dankbar ![]() Das Ganze funktioniert wie folgt(ich glaub so ein änhliches Prinziep hab ich letztens noch bei den Projekten gesehen): Teil 1: Aus dem Passwort erstellen ich einen Hash-Array. Dieser ist immer Byte[256] lang. Teil 2: Es gibt einen noch Array, Byte[256]. Dieser ist mit den Zahlen Byte[0]=0 bis Byte[255]=255 gefüllt. Variationen hierbei sind durch das laden eines Keyfiles möglich. Ein Keyfile ist 256 Byte groß und behinhaltet alle Zahlen von 0 bis 255 in _zufälliger_ Reihenfolge, die dann in diesen "Key-Array" eingelesen werden. Teil 3: Es existieren 2 Zähler. Der Hash-Zähler und der Key-Zähler. Dem Hash-Zähler ist die aktuelle Hash-Array Position bekannt. Der Key-Zähler merkt sich die aktuelle Position im Key-Array. Wenn nun ein Byte verschlüsselt wird passiert folgendes: Der Hash-Zähler wird um 1 erhöht. Anschließend folgt ein MOD 256. Der Key-Zähler wird um den Wert von Hash[ hash-zähler ] erhöht. Anschließend folgt ein MOD 256. Das Byte wird nun mit key[ key-zähler ] XOR verknüpft. Das Ganze kann man wie einen Stream beschreiben etc... Es folgen ein Beispiel(es liegen 5 dem Modul bei, eins hab ich allerdings ausversehen in English kommentiert ![]() Code: [AUSKLAPPEN] '########################## ' Methode 1 '########################## Import pub.crypt Local file:TCryptStream file=New TCryptStream file.SetStream(WriteFile("test.txt")) file.crypt.SetPassword("lol") file.WriteLine("lol sagte er da ^^") file.close() '#################################################### file=New TCryptStream file.SetStream(ReadFile("test.txt")) file.crypt.SetPassword("lol") Print file.ReadLine() file.close() Code: [AUSKLAPPEN] -> TCryptStream Method SetStream( stream:Tstream ) Setzt den Stream, der Verschlüsselt werden soll. Method SetCrypt ( newcrypt:TCrypt ) Setzt den Crypter (kA wie das heißt ^^) von dem Stream auf newcrypt. Field crypt:TCrypt Siehe TCrypt -> TCrypt Method Reset() Setzt die beiden Zähler zurück auf 0. Method SetPassword:Int(pwd:String,kfile:String="") Setzt das Passwort auf pwd und lädt (optional, aber dringend empfohlen) ein KeyFile mit der url$=kfile Method Encrypt:Byte(wert:Byte) Verschlüsselt das Byte wert. Sooo, und eh ihr mir an die Gurgel geht, hier der Link ![]() Edit: siehe weiter unten |
||
- Zuletzt bearbeitet von m a j o r am Di, Apr 25, 2006 16:57, insgesamt 2-mal bearbeitet
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, warum direkt den Stream crypten?
Wäre es nicht hilfreicher gewesen im Beispiel einen einfachen String über ein paar mechanismen zu crypten und diese dann manuell zu schreiben? IMurDOOM |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
m a j o r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jain
du kannst ja, wie in einem Beispiel zu sehen, auch einzelne Bytes crypten.. mal ein Beispiel: Code: [AUSKLAPPEN] Local cr:TCrypt Local text:String,result:String Local i:Int cr = TCrypt.Create() cr.SetPassword("LOL") text=Input("Text:") For i=0 to text.length-1 result:+Chr$(cr.encrypt(text[i])) Next Print result Der Stream ist dazu gedacht, wesentlich einfacher ganze Dateien zu verschlüsseln(natürlich welche die merh als 1 Satz enthalten). |
||
m a j o r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sooo neue Version ist da..
Enthält ein paar neue Funktionen, z.B. EncryptString$()... Außerdem n paar neue Beispiele. Die Beispiele müssen nun seperat geladen werden... Außerdem ein paar Fehler behoben.. nix Relevantes aber immerhin ^^ Crypt-mod 1.1 Beispiele |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group