PHP mcrypt in der Version 1.1 mit Problemen (vorab Info)

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PHP mcrypt in der Version 1.1 mit Problemen (vorab Info)

Postby kvo » 29. October 2003 16:42

Dieser Thread dient der Information. Die mcrypt Extension soll über verschiedene Verschlüsselungsalgorithmen plus selbst definierten Schlüsseln (Keys) das Verschlüsseln und Entschlüsseln eines beliebigen Textes erlauben, anders als z.B. crypt(). Um mcrypt im xampp 1.1 zu aktivieren, muss die Extension in der "php.ini" (/xampp/apache/bin/php.ini) erst geladen werden (Semikolon entfernen, danach Neustart Apache).

Problem: Das Verschlüsseln und Entschlüsseln innerhalb ein und desselben Skriptes ist soweit problemlos. Schwierig wird es, wenn man eine Datei benutzt, die temporär den verschlüsselten Text enthält (z.B. eine Session mit einem verschlüsselten Passwort), der irgendwann bei Bedarf wieder entschlüsselt werden soll. Hier traten zwei Bugs (?) auf:

1) Die Warnung: "Warning: mcrypt_decrypt(): The IV parameter must be as long as the blocksize ..." ist nicht verständlich. Siehe dazu auch:
http://www.zend.com/lists/php-dev/200304/msg00491.html
2) Die Ergebnisse des Ver- und Entschlüsseln sind nicht "stabil". Nach ca. einem dutzend korrekter Ergebnisse gab es dann auch Aussetzer.

Aber vielleicht habe ich auch ein Fehler gemacht. Mein PHP Testscript als txt => http://www.apachefriends.org/winxampp/mcrypttest.txt. Vgl. hierzu auch http://de2.php.net/manual/de/ref.mcrypt.php.

<?php

//// EXAMPLE 1. ////
//// So geht noch alles gut (so it's ok for all in one) ///////////

$key="My Key";
$text="My plain text";

// Verschlüsseln (Enrypt)
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
// Entschlüsseln (Decrypt)
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
echo "EXAMPLE 1:<br><br>Key: $key<br>Text: $text<br>Encrypt: $crypttext<bR>Decrypt: $decrypttext";


//// EXAMPLE 2. with write and get the crypt text in a binary file ////
//// Hier gibt es dann Probleme ... (with problems ...) ///////////

$otherkey="Another Key";
$othertext="Another plain text";
$filename = "crypt.bin";

// Enrypten ...
$otheriv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$otheriv = mcrypt_create_iv($otheriv_size, MCRYPT_RAND);
$othercrypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $otherkey, $othertext, MCRYPT_MODE_ECB, $otheriv);
// In Datei schreiben (binär)
$print="$otheriv\r\n$othercrypttext";
echo "<bR><br><br>EXAMPLE 2:<br><br>Key: $otherkey<br>Text: $othertext<bR>File zum Speichern: $filename<br><br>Schreibe in Datei<br>=> neuen iv: $otheriv<br>=> den verschlüsselten Test: $othercrypttext";
$new_print = fopen($filename,"wb+");
fwrite($new_print,$print);
fclose($new_print);
// Aus der Datei lesen
$datei = fopen($filename,"rb");
$i=0;
while(!feof($datei))
{
// $zeile = fread($datei,filesize($filename));
$zeile = fgets($datei,255);
$cryptzeile[]=$zeile;
$i+=1;
}
fclose($datei);
// Decrypten ...
echo "<br><br>Habe nun aus Datei gelesen: <br>=> neuen iv: $cryptzeile[0]<br>=> den verschlüsselten Test: $cryptzeile[1]";
$otherdecrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $otherkey, $cryptzeile[1], MCRYPT_MODE_ECB, $cryptzeile[0]);
echo "<br>Habe nun alles dechriffiert:<br>Orignaler Text: $othertext<br>Chiffrierter Text aus Datei: $cryptzeile[1] <br>Dechiffrierter Text aus Datei: $otherdecrypttext";

//// FAZIT /////////////////
echo "<br><br><br>FAZIT:<bR><br>
<UL>
<LI>\"Warning: mcrypt_decrypt(): The IV parameter must be as long as the blocksize ...\" ist anscheindend ein Bug für PHP 4 und mcrypt(). Vgl. bitte ZEND Bug Report: <A HREF=\"http://www.zend.com/lists/php-dev/200304/msg00491.html\">
http://www.zend.com/lists/php-dev/200304/msg00491.html</A></LI>
<LI>Das encrypt in und decrypt aus einer Datei ist instabil, da ab und zu unverständlich plötzlich (!!!) die Decodierung nicht mehr funktioniert. Öfter mal die Seite aktualisieren, dann kommt ihr bestimmt auch mal in diesen zweifelhaften Genuß.</li>
</UL>
<B>Eigentlich schade!</B> (Kay Vogelgesang)";
?>
User avatar
kvo
Apache Friends
 
Posts: 184
Joined: 24. January 2003 14:03
Location: Berlin

Postby Kristian Marcroft » 29. October 2003 16:56

Hi Kay,

wäre sowas nichts für die XAMPP FAQ?
Könntest evtl. auch noch mal eintragen, weil im Forum geht sowas schnell unter :)

URL zur FAQ siehe meine Sig. :)

So long
KriS. der jetzt um 17:10 schon ins Bett hüpft weil er am ende is!
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby kvo » 29. October 2003 22:06

Oh ja, KriS! Die FAQs. Aber es kommt bald sowie so noch mehr und dann ... :wink:
User avatar
kvo
Apache Friends
 
Posts: 184
Joined: 24. January 2003 14:03
Location: Berlin

Postby marder » 30. November 2005 20:43

1) Die Warnung: "Warning: mcrypt_decrypt(): The IV parameter must be as long as the blocksize ..." ist nicht verständlich. Siehe dazu auch:
http://www.zend.com/lists/php-dev/200304/msg00491.html

Antwort: Der IV muss genau 32 Zeichen lang sein. Den kann man auch selbst definieren oder mit PHP-Befehl md5 generieren.
Beispiel $iv = md5("XAMPP ist das beste, dass ich kenne!!!!!");

2) Die Ergebnisse des Ver- und Entschlüsseln sind nicht "stabil". Nach ca. einem dutzend korrekter Ergebnisse gab es dann auch Aussetzer.

Aber vielleicht habe ich auch ein Fehler gemacht. Mein PHP Testscript als txt => http://www.apachefriends.org/winxampp/mcrypttest.txt. Vgl. hierzu auch http://de2.php.net/manual/de/ref.mcrypt.php.

Antwort: PHP behandelt Variablen beim speichern als Text, genau so wie eMails. Dieses Problem habe ich mit base64 gelöst.
Mit
$textzumspeichern = base64_encode($verschluesseltertext);
wird der verschluesselte Text Speicherkonform umgewandelt.

Mit
$readfile = file_get_contents("gespeicherterverschluesseltertext.txt");
$verschluesseltedaten = base64_decode($readfile);
kann man die gespeicherten Daten wieder in den verschlüsselten Urzustand zurückbringen.

Gruß
Marder
marder
 
Posts: 1
Joined: 29. November 2005 16:42

Re: PHP mcrypt in der Version 1.1 mit Problemen (vorab Info)

Postby truecolor » 04. June 2009 02:14

simulation credit auto

Vielen Dank für die Informationen :D
truecolor
 
Posts: 1
Joined: 04. June 2009 02:10

Re: PHP mcrypt in der Version 1.1 mit Problemen (vorab Info)

Postby grigori » 26. June 2010 17:34

I have translate this page with google translate, and thanks for PHP mcrypt information code.
Last edited by grigori on 14. June 2011 05:14, edited 1 time in total.
grigori
 
Posts: 1
Joined: 26. June 2010 17:31

Re: PHP mcrypt in der Version 1.1 mit Problemen (vorab Info)

Postby Benno_M_1984 » 04. January 2011 23:58

ahh, nu weiss ich warum das net gefunzt hat. sollte für einen Kunden sein altes system prüfen und bin auf den fehler gestoßen.


Tickets für aktuelle Events oder Tour Konzerte gibt es bei Tour Tournee
Benno_M_1984
 
Posts: 1
Joined: 04. January 2011 23:56

Re: PHP mcrypt in der Version 1.1 mit Problemen (vorab Info)

Postby tarapozan » 28. May 2011 06:57

I had problem on php5 but not in php4 )
astigmatism
P iCore7 266 16gig/ram
tarapozan
 
Posts: 1
Joined: 28. May 2011 06:56


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 12 guests