| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.267
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Versuch es mal mit base64 und/oder serialize, dann kannst du dir das explode() sparen. Der Code sieht, wenn ich das mit meinem Uraltkodierskript vergleiche, richtig aus. Lass das srand() und sha1() Zeug mal weg, das macht deine Anwendung kein bisschen sicherer und ist nur eine potentielle Fehlerquelle. Was mich vielmehr stutzig macht ist, dass dein 11. String halb-dekodiert worden zu sein scheint. Das kann eigentlich nicht sein. Benutz als Modus auch mal ECB, ist zwar nicht sicher, aber dafuer einfacher und damit wieder etwas besser zu debuggen. Noch zwei Ansaetze: - Schau dir das Changelog seit PHP 4.4 mal an, ob da etwas zu mcrypt und Bugs zu finden ist - Lass das PHP-Skript mal Standalone ueber die php.exe laufen
__________________ "Nuschel ich?" - "Was?" |
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Stimmt, ist mir gar nicht aufgefallen. Ich kenn mich in dem Thema nicht aus, aber das bringt mich auf eine andere Fährte: Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.267
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Was mir auch aufgefallen ist, du zauberst den Initialisierungsvektor beim Dekodieren scheinbar aus dem Hut, den musst du aber - dachte ich zumindest - eigentlich mit in deinen kodierten String uebergeben. PHP-Code:
__________________ "Nuschel ich?" - "Was?" |
| | |
| | |||
| Neuer Benutzer Registriert seit: 14.12.2011
Beiträge: 16
PHP-Kenntnisse: Anfänger ![]() | Hallo, ihr seid die besten - habs! Der Reihe nach: Zitat:
Zitat:
Ursprünglich hab ich das auch so gelesen, dass man den IV am besten direkt mit den Daten zum entschlüsseln übergibt. Als ich dann aber damit begonnen hab zu ver- und entschlüsseln hab ich das Anfangs garnicht berücksichtigt - und festgestellt dass es ja trotzdem klappt, daraus folgerte ich dann fälschlicherweise "braucht man wohl nicht so unbedingt". Ich hab ne ganze Zeit lang auch nur das Verhalten nach ner einmaligen Ausführung geprüft, und das hat ja immer gepasst... Erst später wollte ich dann kodierte Daten mehrmals entschlüsseln - tadaa, Problem. Ich hab also jetzt den beim verschlüsseln generierten IV mit bei den Daten hinterlegt, von dort les ich ihn beim entschlüsseln ein - und schon klappt das auch mehrmals hintereinander! ![]() Und danke für den base64-Tip, is ne gute Idee - das macht die Sache nicht nur einfacher, sondernd auch "Augenfreundlicher". So ganz verstanden hab ich das allerdings immer noch nicht. Wenn unbedingt der beim generieren erzeugte IV notwendig ist - warum klappts dann auch ohne? Wenn ohne Übergabe des ursprünglichen IV ein neuer IV generiert wird, warum funktioniert der dann überhaupt? Und warum funktioniert er bei mehrmaligem Aufruf, also bei mehrmaliger neugenerierung, nurnoch "teilweise"..? Bei manchen Dingen denk ich mir auch nur Danke fürs mitgrübeln, Grüße! | ||
| | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.267
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Klar gern, find das Thema interessant. Wenn ich damals in Kryptographie richtig aufgepasst habe, ist der Initialvektor ja ein Zufallsstring (MCRYPT_RAND), der als erster Kodierblock herhält. Die nachfolgenden Kodierblöcke (32 Byte?) werden dann je nach Modus (CFB) mit dem Vorgänger "vermanscht" (ECB macht das nicht; selbes PW = selber verschlüsselter String). Wenn der Initialvektor jetzt falsch ist, ist es eigentlich ( ) unmöglich, dass du deinen Crypttext wieder in den (fast) richtigen Plaintext verwandeln kannst, weil ja von Anfang an eine falsche Grundlage benutzt wird.Was sein könnte ist, dass MCRYPT_RAND buggy ist oder du einen so ungünstigen - da sich wiederholenden und dazu noch kurzen - Kodiertext gewählt hast, dass der Initialvektor fast keinen Einfluss genommen hat. Wäre aber dann kein gutes Zeichen für den Algorithmus. Wie auch immer, freut mich wenns klappt.
__________________ "Nuschel ich?" - "Was?" |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem beim Captcha Aufruf in einem Formular, nur das Bild wird angezeigt | litterauspirna | PHP Tipps 2009 | 19 | 11.05.2009 15:25 |
| [Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal | soulan | PHP Tipps 2008 | 13 | 28.11.2008 22:51 |
| Problem mit swfobjects | R4v3r | JavaScript, Ajax und mehr | 8 | 21.09.2008 14:17 |
| Problem beim Aufruf einer Funktion | elwood | PHP Tipps 2008 | 6 | 30.08.2007 12:54 |
| MCRYPT Problem | solitaer | PHP-Fortgeschrittene | 2 | 17.01.2006 10:58 |
| Problem mit Aufruf von mkisofs | PHP-Fortgeschrittene | 1 | 21.08.2005 13:04 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mcrypt_decrypt probleme, php mcrypt_decrypt, mcrypt_decrypt formular, mcrypt verschlüsselt nicht richtig, \mcrypt decrypt\, mcrypt_ decrypt |