Sicheres Verschlüsseln

DexXxtrin

Erfahrenes Mitglied
Hallo zusammen,

Ich möchte auf meiner Seite Daten die in die Datenbank geschrieben werden verschlüsseln.
Nun fehlt mir allerdings die Übersicht, welche Verschüsselungsmethode sich am besten eignet und auch sicher ist.
Was könnt ihr mir vorschlagen? Welche Methode ist am sichersten und eignet sich für PHP?

Zudem noch diese Frage: Wo speichert man den Schlüssel am besten? Direkt im PHP Script oder sonst wo?

Gruss DexXxtrin
 
Danke schon mal für eure Antworten.
Nein es handelt sich nicht um Passwörter. Die Verschlüssle ich mit SHA256 oder SHA512.
Es geht um Daten die ich wieder auslesen sollte.
Mir ist klar dass es hier nicht die super sichere Lösung gibt.
Aber es gibt Verschlüsselungverfahren die nicht (mehr) so sicher sind, da sie einfach viel zu schnell ausgelesen werden können.
Und da möchte ich halt doch eines, welches noch nicht gleich geknackt wird.
Über die Hashes habe ich viel gefunden, mit guten Erklärungen dazu, aber über das Thema finde ich nichts verwertbares...
 
Hier eine Funktion die das Verschlüsseln und das Entschlüsseln erledigt. Wichtig: $key muss verändert werden ;)

PHP:
<?php
		/**
         * Verschlüsselt eine STRING und Entschlüsselt ihn wieder.
         * @param type $string
         * @param type $encode ENCODE = true oder DECODE = false
         * @return type STRING
         * 
         */
        function verschluesseln($string, $encode = true){
            $key = 'Me!n KeY';
            
			//Verschlüsseln oder Entschlüsseln?
            if($encode == true){
                return str_replace('%', '.', urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))))));   
            }else{
                return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode(urldecode(str_replace('.', '%', $string))), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
            }
        }
		
		$MeinString = 'Das ist ein Test';
		
		//Verschlüsseln
		$MeinString_Verschlusselt = verschluesseln($MeinString, true);
		
		//Ausgabe Verschlüsselung
		echo $MeinString_Verschlusselt;
		
		echo '<br>';
		
		//Entschlüsseln und ausgeben
		echo verschluesseln($MeinString_Verschlusselt, false);
?>
:rolleyes:
 
Ich muss dieses Thema nochmals aufnehmen.
Die Verschlüsselung funktioniert soweit voll und ganz. Nun hab ich einfach ein Problem.
Ich kann das Ergebnis der Verschlüsselung nicht in der Datenbank abspeichern.
Wenn ich, wie normal in die DB schreiben will und die Variabel einsetze, kommt bei mir ein Fehler. (MySQL Error, ohne Erläuterung nur mit Zeilenangabe des Befehls)
Mit der Unverschlüsselten Variabel funktioniert das tiptop.
Kann mir jemand sagen, wass ich falsch mache?
 
Das kommt dabei raus:

SQL:
INSERT INTO mbr_new (sex, name, prename, street, place, phone, mail, birthday, how, comment) VALUES ('???', '???~W?', '???q[?', '???cE?k??', '????0{?o???l?4', '????'??E9V???)?', '???uD?o???w?2?g??', '????&??B2', '???~R?', '')

Dabei:
sex (auswahl - herr/frau): varchar(5)
name: 15
prename: 15
street: 30
place: 25
phone: 20
mail: 30
birthday: 15
how (max 9.char): 11
comment: text
 
Zuletzt bearbeitet von einem Moderator:
Zurück