komplexer Verschlüsselungs-Algorithmus (lesen lohnt sich!!!)
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
abgespeichert
algorithmus
attacke
aufwand
beispiel
biet
buchstabe
daten
diverse begriffe
durcheinander
eins
klau
knack
pawort
position
relativ
speicher
variable
ziffer
zwischenruf
-
Ich habe mir mal einen Verschl?ssleungsalgorithmus ausgedacht:
- Wir haben einen Textstring (z.B. Hallo)
- Wir machen jetzt jeden einzelnen Buchstaben in eine Variable. Das hei?t wir mach uns einen Array der in diesen Falle 5 Variablen gro? ist.
- wir brauchen eine Variable wie weit wir sind.
- Wir brauchen einen zweiten Array der 5 Variblen gro? ist um zu speichern welchen Buchstaben wir schon kodiert haben. Hier stehen alle Variablen am Anfagng auf 0.
- Wir nehmen eine Zufallszahl zwischen 1 und 5 (z.B. 3) Nun verschl?sseln wir den 3 Buchstaben (z.B. l) in eine Hexa-Dezimale zahl (2 stellen, wor nehmen den 8bit Ascii-Code). Dies machen wir bis wir alle 5 Zeichen kodiert haben. Wir erkennen daran dass eine Zahl schon kodiert ist wenn wir der Wert im 2. Array 0 ist. dabei schreiben wir jede Koriderung nacheinander in eine variable
Also wer das rafft wei? jetzt dass wir einen koplett durcheinander gew?rfelten Code haben. Um ihn richtig entschl?sseln zu k?nnen m?ssen wir an den Code die Positionen dran h?ngen. Um aber zwischen Code und positionen zu trennen speichern wir die L?nge (5) an den Anfang der Code-Variable.
Die Positionen werden so gespeichert, man nimmt das 1. Zeichen und gibt die Position an und dann das 2. usw.
Nun kann man den Code auch wieder entschl?sseln. Hier zum beispiel unser Code: Hallo
0548616C6C6F so w?rde der Code aussehen wenn wir von vorne nach hinten kodiert h?tten. Man beachte dass die 1. 3 Ziffern die L?nge sind. Sie werden auch als Hexadezimal abgespeichert (das l?sst einen 255 Zeichen lange String zu.
056C6C486F610305020104
Da wir einen 255 langen Strin zulassen wollen m?ssen die Positionen auch 2 Stellen haben und in Hexadezimal gerechnet werden (haben dann auch 2 Stellen)
Hallo = 056C6C486F610305020104
Was hei? es jetzt??
056C6C486F610305020401
Noch ne Frage. Wen sein Kopf raucht jetzt?? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wozu brauchst du den so eine komplexe Verschl?sslung! Wenn du etwas im Internet Verschl?sseln willst, reicht da CRYPT oder MD5 lange aus, diese Verschl?sslungen sind ziemlich sicher und brauchen nicht so eine komplexe Programmierung, bis man zu dem gew?nschten Ergebniss kommt, wie du es haben willst!
Au?erdem empfehle ich die CRYPT-Verschl?sslung, da diese auch ziemlich viele Sonderzeichen verwendet und ziemlich knacksicher ist! -
Wenn man deinen Algorithmus nicht kennt, mag das vllt anfangst verwirrend sein, aber besonders sicher ist das nicht, da du den Schl?ssel(=L?nge des Codes) ja im verschl?sselten Teil mit angibst.
Und ich w?rde auch nicht in ASCII als Hex Format verschl?sseln. Jeder, der ein bi?chen mehr Ahnung hat von Computern wird gleich erkennen, dass es hex-werte sind.
also: Schl?ssel nicht im Code selber angeben
und ein maximum an Verschl?sselungszeichen benutzen, die nicht offensichtlich sind.
Die L?nge des Ursprungsstrings auf jeden Fall unerkennbar machen. -
MD5 ist keine richtige Verschl?sselung.
Man kann einen mit MD5 "verschl?sselten" Satz nicht wiederherstellen.
Was CRYPT macht wei? ich nicht, habe bisher noch nicht davon geh?rt.
Was spricht gegen eine eigene Verschl?sselung? Auch die von dir genannten Verschl?sselungen bed?rfen einer komplexen Programmierung. Allerdings sind diese Befehle in den meisten Programmiersprachen schon eingebaut und k?nnen z.B. mit md5("text") oder so aufgerufen werden.
Eine eigene Verschl?sselung ist immer was lustiges. Auch wenn man in den meisten F?llen ?berhaupt keine Verschl?sselung braucht =) -
Crypt funktioniert eingentlich auch mit CRYPT('$variable/text/was auch immer')
und ist ziemlich sicher.
Ja, aber es ist wirklich anhand der Zahlen leicht zu erkennen, das es HEX Zahlen sind, und diese sind mit einem einfachen Hexeditor oder zumindest mit ein bisschen Arbeit rauszufinden.
Und Verschl?sslungen braucht man wohl, zum Beispiel wenn man ein Passwort in einer Datenbank abspeichern will, die zug?nglich ist, und damit ein Sicherheitsrisiko darstellt.
Dadruch k?nnte man das Passwort verschl?sseln, und damit Sicherheit bieten! -
Also wenn man die Verschl?sselung wieder R?ckg?ngig machen sollen kann, dann ist sie ganz gut, aber ansonsten kann man doch einfach md5() oder sha1() benutzen. Aber du hast wenigstens deinen Kopf ein bisschen angestrengt und warst kreativ.
@hirbod
Nur ziemlich sicher? Zeige mir mal wie du einen mit md5 oder crpyt verschl?sselten String wieder zur?ckwandelst... Das geht einfach nicht. >.< -
Der Algo is nicht gut, weil zu viel Speicher verbraucht wird, also ist er nicht zu empfehlen bei gr??eren Texten.
-
Der Algo is nicht gut, weil zu viel Speicher verbraucht wird, also ist er nicht zu empfehlen bei gr??eren Texten.
Es gehen ja nur 255 Zeichen.
-----------------------------------------
Ich wei? wie man die L?nge am Anfang auslassen kann.
Man hat ja f?r jedes Zeichen 2 Stellen. Wenn Die L?nge des Codes wie hier (ohne ersten Wert) 10 nennen wir diese variable "len". Und die Codelange nennen wir "clen"
clen = len/2/2
Also das 1. /2 weil es ja immer 2 Zeichen sind. Und das 2. Weil es ganau so viele Positionen wie Buchstaben gibt.
Also gleich
clen = len/4
------------------------------------------
Au?erdem kann man vielleicht erkennen das es Hexzahlen sind. Aber man wei? nicht die Reihenfolge^^.
------------------------------------------
Man k?nnte an den Anfang auch einen Wert einbauen
der zwei verschiedene Werte haben kann. Beim 1. hei?t das dass erst der Code kommt und beim 2. dass erst die Positionen kommen
------------------------------------------
Die "------" sind immer trennstriche f?r einen guten doppelpost (darf man aber net).
Aber im Endergbenis kann man den Algo noch ziemlich verbessern, au?erdem denke ich w?re ein neuer Algo schwer zu knacken weil er unbekannt ist. Nur jetzt hab ich schon alles verraten
Beitrag ge?ndert am 1.12.2005 18:08 von jpaket -
Eins hab ich nicht ganz verstanden.... wenn wir wie oben genannt eine Zufallszahl nehmen.. (im Beispiel wars 3) dann kommt doch bei jeder Verschl?sselung etwas anderes raus?!
Au?er ich habs falsch verstanden. -
Eins hab ich nicht ganz verstanden.... wenn wir wie oben genannt eine Zufallszahl nehmen.. (im Beispiel wars 3) dann kommt doch bei jeder Verschl?sselung etwas anderes raus?!
Au?er ich habs falsch verstanden.
Ja da sist es ja gerade, das hei?t man k?nnte es nicht auf die Arte wie MD5 hacken. Aber zum entschl?sseln sind ja such noch ma n paar zahlen im code. -
alles ist entschl?sselbar - vorallem das was man auch wieder entschl?sseln kann..
wichtig ist nur dass man zum entschl?sseln relativ viel aufwand braucht - oder lange rechnen lassen muss
ich hab auch nen verschl?sselungsalgorithmus geschrieben ... werde den jetzt aber hier nicht preisgeben da er dann unsicherer wird und zwar hab ich das gemacht damit man nicht einfach die highscore bei flashgames f?lschen kann.. wenn man "mitlauscht" wenn die variable an php ?bergeben wird.. und irgendwie hab ich nichts gefunden mit dem das geht .. drum hab ich mir schnell selbst was geschrieben..
ja ist eigentlich nicht so schlecht der algorithmus... nur sollten die zahlen vielleicht zB noch verschl?sselt werden mit denen man das wieder entschl?sseln kann sie zB kA dividieren durch 3 dann qadrieren ... kA lass dir was einfallen.. den tangenz davon oder sowas ^^
und dann noch durcheinanderwirbeln und unn?tiges zeug reinadden... tja gr??eproblem.. kann man nichts machen.. ^^
lg
NetBat -
jetz wird mir klar warum die amis die Enigma klauen wollten!
Beitrag ge?ndert am 1.12.2005 21:23 von milchreis -
W?re nett, wenn du (Threadersteller) den Code vllt posten k?nntest.
Mich w?rde mal interessieren, wie das so aussieht.
W?re auch nett, wenn du sagen w?rdest, wie lange das verschl?sseln dauert.
MfG Lucas -
Ich hab mal ein Verschl?sselungsalgoritmus mit Passwort zum ver- und entschl?sseln ausgedacht. Der Trick ist, dass das Passwort (Schl?ssel) auf irgendeine Weise in einen so langen String extrahiert wird wie das, was verschl?sselt werden soll. Dann wird der Schl?ssel und der zu verschl?sselnde Text in auf bin?rer Ebene bitweise addiert, wobei der jeweilige Rest nicht beachtet wird.
Damit kann man praktischerweise auch Bin?rdaten verschl?sseln. Der verschl?sselte Text/die Daten sind dan aber Bin?r- und keine ASCII-Daten und m?ssen somit zur ?bermittelung via Textprotokollen noch mit base64_encode() kodiert werden.
Die L?nge der urspr?nglichen Daten bleibt dabei aber kenntlich. Man kann aber auch belibieg gro?e Daten (z.B. Gif-Bilder) verschl?sseln. -
Nur mal als Zwischenruf, weil hier diverse Begriffe durcheinander gebracht wurden:
md5, crypt, sha und Co. sind keine Verschl?sselungs-Algorithmen sondern Hashing-Algorithmen. Sie dienen dazu einen String in einen anderen Wert zu verwandeln, der m?glichst nichts mit dem Ausgangswert zu tun hat. Eine R?ckwandlung ist nicht vorgesehen und daher auch nicht m?glich.
Allenfalls mit Tricks kommt man wieder an den Original-String heran:
Wenn Teile des Original-Strings bekannt sind oder ?ber einen gl?cklichen Zufall mit einer W?rterbuch-Attacke (da die Algorithmen oft f?r das Unkenntlich-Machen von Passw?rtern benutzt werden und die meisten Menschen keine sicheren Passw?rter benutzen). -
wichtig ist nur dass man zum entschl?sseln relativ viel aufwand braucht - oder lange rechnen lassen muss
Z.B. mit der Kubikwurzel aus dem Cosinus des Zeichenwertes multipliziert mit einer sich periodisch ?ndernden Zufallszahl und der Zeichenposition... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage