Crypt-Modul
Übersicht
BlitzMax, BlitzMax NG
Codearchiv & Module
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
BlitzMax, BlitzMax NG
Codearchiv & Module
Powered by phpBB © 2001 - 2006, phpBB Group
