• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Script läuft unter PHP 5.6 nicht mehr

schlegel.berlin

New member
Liebe Leute,

habe auf einem Server probehalber mal auf PHP 5.6 umgestellt um die PHP scripte zu testen und gegebenenfalls anzupassen.

Soweit ist jetzt auch alles ok aber einer Stelle scheitere kläglich und nachhaltig.
Und zwar an folgendem Codeschnipsel (der mit PHP 5.3 funktiioniert, mit 5.4 und 5.5 hab ich nicht probiert):

PHP:
define('SALT', 'Hgsh_98y-hjfZfYlfjk70'); 

function decrypt($text) 
{ 
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, SALT, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))); 
} 

/*
$stringvariable:
r0WN3qMyO6DuSUc6JkiC9aPNbsU04NNVpAcC1l9eN78=
*/

$text = $stringvariable; 
$ergebnis = decrypt($text); // $ergebnis: enthält keine zeichen, nichts

/*
eigentlich müsste $ergebnis sein: DiesIstEinString
*/

Hat jemand von Euch eine Ahnung woran das liegt?
Oder, noch besser, was ich muss ich tun, um das Script auch unter PHP 5.6 zum Laufen zu kriegen?

Viele Dank für Eure bewährte Hilfe...

LG, Karin
 
Zuletzt bearbeitet von einem Moderator:
Danke, tsseh,
habe natürlich schon bei php.net nachgeschaut,
aber dort kann ich nichts finden, was mir den Fehler erklärt, bzw. mich den Fehler beheben lässt ...

- - - Aktualisiert - - -

So, liebe Leute,
da ich keine Lösung finden konnte, habe ich es jetzt komplett anders gemacht.
Das Script läuft jetzt auf allen PHP Versionen, von 4 bis 5.6
Sagt mir doch mal Eure Meinung dazu....

LG, Karin

PHP:
 <?php
function convert($str,$ky='')
{
if($ky=='')return $str;
$ky=str_replace(chr(32),'',$ky);
if(strlen($ky)<8)exit('key error');
$kl=strlen($ky)<32?strlen($ky):32;
$k=array();for($i=0;$i<$kl;$i++)
{
$k[$i]=ord($ky{$i})&0x1F;
}
$j=0;for($i=0;$i<strlen($str);$i++)
{
$e=ord($str{$i});
$str{$i}=$e&0xE0?chr($e^$k[$j]):chr($e);
$j++;$j=$j==$kl?0:$j;
}
return $str;
}


// Hier ist der Key 
$key='z-Klxv5-tV5rFhj-kl34_dsgfxyPpg-2fG'; // 8-32 Zeichen OHNE Leerzeichen

// Der zu verschlüsselnde String, z.B. ein Passwort
$string1='Dies ist ein String';

// EnCrypt den ooben definierten String
$string2=convert($string1,$key);

// DeCrypt den verschlüsselten String
$string3=convert($string2,$key);

// Ausgabe
echo '<span style="font-family:Courier">'."\n";
echo 'Key: <b>'.$key.'</b><br><br>'."\n";
echo "Der zu 'verschlüsselnd'e String: <b>".$string1.'</b><br><br>'."\n";
echo "Ergebnis der 'Verschlüsselung': <b>".$string2.'</b><br><br>'."\n";
echo "Hier der wieder 'entschlüsselte' String: <b>".$string3.'</b><br><br>'."\n";
echo '</span>'."\n";
?>
 
Zuletzt bearbeitet:
Du hast natürlich völlig Recht!

Oh man, ich bin eine komplette Idiotin.
Hab immer das "falsche" Script getestet...

Sorry, für die "Aufregung" die ich verabstaltet habe....
 
Zurück
Oben