Hi!
Ich möchte diverse Schulnoten in einer DB speichern. Ich habe mir folgendes Konzept überlegt und wollte euch mal fragen, was ihr davon haltet - bitte korrigiert mich, wenn ich in meinen Überlegungen einen Fehler habe:
Zur Erläuterung der einzelnen Schritte (ich kenne mich nicht 100% gut mit Verschlüsselungstechnik aus und habe daher vielleicht ein paar Denkfehler drin - weist mich bitte drauf hin):
Vielen Dank schonmal!
Ich möchte diverse Schulnoten in einer DB speichern. Ich habe mir folgendes Konzept überlegt und wollte euch mal fragen, was ihr davon haltet - bitte korrigiert mich, wenn ich in meinen Überlegungen einen Fehler habe:
1. Nachdem die Schulnoten übermittelt wurden, werden erstmal die nicht übermittelten Felder (wenn z.B. Englisch keine Note eingetragen wurde) mit zufälligen Buchstaben aufgefüllt.
2. Danach werden alle Felder aneinandergehängt und mit einem Seperator ( getrennt.
3. Anschließend wird an den Mischmasch der md5-hash des Userpassworts angehängt und die Daten an einer zufälligen Stelle abgeschnitten und hinten wieder angehängt (bspw: "Englisch_1-1:15;Englisch_1-2:12;Englisch_1-3:srha;*md5-hash*" =>sch_1-2:12;Englisch_1-3:srha;*md5-hash*Englisch_1-1:15;Engli)
4. Jetzt wird das ganze mithilfe von mcrypt mit Rijndael-256 verschlüsselt wobei als Schlüssel wieder der md5-hash des Passworts verwendet wird und das Ergebnist in einem TEXT-Feld einer mysql-DB abgelegt.
2. Danach werden alle Felder aneinandergehängt und mit einem Seperator ( getrennt.
3. Anschließend wird an den Mischmasch der md5-hash des Userpassworts angehängt und die Daten an einer zufälligen Stelle abgeschnitten und hinten wieder angehängt (bspw: "Englisch_1-1:15;Englisch_1-2:12;Englisch_1-3:srha;*md5-hash*" =>sch_1-2:12;Englisch_1-3:srha;*md5-hash*Englisch_1-1:15;Engli)
4. Jetzt wird das ganze mithilfe von mcrypt mit Rijndael-256 verschlüsselt wobei als Schlüssel wieder der md5-hash des Passworts verwendet wird und das Ergebnist in einem TEXT-Feld einer mysql-DB abgelegt.
Zur Erläuterung der einzelnen Schritte (ich kenne mich nicht 100% gut mit Verschlüsselungstechnik aus und habe daher vielleicht ein paar Denkfehler drin - weist mich bitte drauf hin):
1. Um schon den Ausgangsblock zu "verzufälligen" füge ich hier die Buchstaben ein.
2. Damit hoffe ich die Performance zu erhöhen, da ich davon ausgehe, dass das entschlüsseln von 30 Noten langsamer ist, als das entschlüsseln von 1 größeren Block.
3. Damit der Block nicht mit einem vorhersehbaren Wert beginnt verschiebe ich alles und verwende einen eindeutigen Wert (md5-hash) als Trennzeichen. Gleichzeitig kann ich später nach dem Entschlüsseln einfach herausfinden ob das Passwort richtig war, indem ich gucke ob der Hash im Klartext enthalten ist.
4. Jetzt verschlüssele ich das ganze mit AES-256.
2. Damit hoffe ich die Performance zu erhöhen, da ich davon ausgehe, dass das entschlüsseln von 30 Noten langsamer ist, als das entschlüsseln von 1 größeren Block.
3. Damit der Block nicht mit einem vorhersehbaren Wert beginnt verschiebe ich alles und verwende einen eindeutigen Wert (md5-hash) als Trennzeichen. Gleichzeitig kann ich später nach dem Entschlüsseln einfach herausfinden ob das Passwort richtig war, indem ich gucke ob der Hash im Klartext enthalten ist.
4. Jetzt verschlüssele ich das ganze mit AES-256.
Vielen Dank schonmal!
Kommentar