Grüße
danke für den Tipp mit dem base64, hätte man echt selbst drauf kommen können, wenn man sich etwas mehr damit befasst hätte
Ich hatte gehofft, es käme immer das gleiche Passwort raus, als ich das Codebeispiel aus dem Wiki gelesen hatte, ist mir halt dieser Zufallswert MCRYPT_RAND aufgefallen, und da mein Passwort immer anders aussah, dachte ich da einen Zusammenhang gefunden zu haben.
Wenn ich dein Codebeispiel verwende kommt tatsächlich immer das gleiche raus, wie gesagt habe ich die
McryptUtil von SargTeX aus eurem Wiki testweise verwendet, hier nochmal die entsrepchenden Methoden:
|
PHP Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public static function open($algorithm = 'blowfish', $mode = 'cfb') {
self::$mcrypt = mcrypt_module_open($algorithm, '', $mode, '');
}
public static function encrypt($crypt, $mcryptKey) {
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$mcrypt), MCRYPT_RAND);
mcrypt_generic_init(self::$mcrypt, $mcryptKey, $iv);
$crypted = mcrypt_generic(self::$mcrypt, $crypt);
mcrypt_generic_deinit(self::$mcrypt);
return $iv.$crypted;
}
public static function decrypt($crypt, $mcryptKey) {
$ivsize = mcrypt_enc_get_iv_size(self::$mcrypt);
$iv = substr($crypt, 0, $ivsize);
$crypt = substr($crypt, $ivsize);
mcrypt_generic_init(self::$mcrypt, $mcryptKey, $iv);
$crypt = mdecrypt_generic(self::$mcrypt, $crypt);
return $crypt;
}
|
Nehme ich jetzt folgendes Beispiel:
|
PHP Quellcode
|
1
2
3
4
5
6
|
McryptUtil::open();
for($i=0; $i<10; $i++) {
$crypted = McryptUtil::encrypt("easycoding", "meinpasswort");
echo base64_encode($crypted)." -> ".McryptUtil::decrypt($crypted, "meinpasswort")."<br>";
}
|
erhalte ich folgende Ausgabe:
|
Bash
|
1
2
3
4
5
6
7
8
9
10
|
U/UP7mqD5JjXUKD7+uyiIILd -> easycoding
BO0xyWjcS6wI+YYidfyXRuUX -> easycoding
q/PYgfxj171gi+CS+Zwc1Mj6 -> easycoding
CMfG1+bXS40xAy+qEWa/LpaF -> easycoding
2yq6jOb6Y9oD41YfU4QllDIB -> easycoding
5NlzX72M4WYyb5QZwgMhH6Wt -> easycoding
45ezEClLhu+aKUr72HQV12CX -> easycoding
mSQ5Xuv3EjdFpEIPTuRvArZC -> easycoding
xD7ECsNTQvtOs3NnWTuq6egM -> easycoding
JaUX1HIc2ABLyQhlqVKYFqgP -> easycoding
|
Also jedesmal ein anderes Passwort. SargTeX verwendet auch andere Methoden und nen anderen Algorithmus als du (oder?), da ich von dem Gebiet relativ wenig Ahnung hab, war copy&paste angesagt.
Wie auch immer, ich habe die Klasse mal angepasst und mich dabei an dein Beispiel gehalten, siehe da, alles funktioniert wunderbar, die Passwörter sind jetzt tatsächlich identisch

Der zu Beginn genannte SQL-Fehler kommt vermutlich von den Bytedaten die ich speichern wollte... zumindest bekomm ich nach base64 keine Fehler mehr, auch bei den alten "variierenden" Passwörtern. Da bietet MySQL extra ein Byteformat an und ich bin auf Grund mangelnder PHP-Kentnisse zu doof, das zu nutzen... wird nachgeholt.
Zu deiner Frage, was die wiederholte Speicherung soll: da hast du natürlich absolut recht und ich hatte weiter oben ja schon geschrieben, dass ich besagte Verfahrensweise entferne. Das war einfach ein wiederverwendetes Relikt aus grauer Vorzeit und in diesem Kontext ziemlich unnütz

Trotzdem hat es mich interessiert, wie es zu dem Fehler kommt, irgendwie muss man ja lernen, oder?
Also, vielen Dank nochmal für die Hilfe
Eine letzte Frage doch noch: Das Beispiel hat ja auch mit SargTeX Version, also den variierenden Passwörtern, funktioniert. Gibt es ne Art Schlagwort, unter dem ich die verschiedenen Algorithmen, die in Mcrypt verwendbar sind, vergleiche kann? Oder heißt es auch hier sich in jeden Algorithmus einlesen und seinen Liebling zu finden?