Sam: MySql MD5 Feldverschlüsselung

Hallo Ihr,

In meiner alten Community-Software waren die Passwörter nicht verschlüsselt gespeichert.
Die neue Software braucht MD5 Verschlüsselung.
Gibts ne Möglichkeit das ich das gesamte Feld in der Tabelle in der die Passwörter sind in MD5 umwandle?
bei einzelnen Einträgen geht es ja.
Aber bei 3000 Einträgen ist das wohl zuviel arbeit die alle einzeln umzuwandeln.

Würde mich freuen wenn mir jemand helfen könnte.

Grüße
Samy

  1. PS: Ich hab netürlich phpMyAdmin ;)

  2. Holladiewaldfee,

    Aber bei 3000 Einträgen ist das wohl zuviel arbeit die alle einzeln umzuwandeln.

    Ich täte es so machen:

    $rRes = mysql_query('SELECT pass FROM tabelle');
    $aRes = array();
    while($x = mysql_fetch_array($rRes))
     $aRes[] = $x['pass'];
    for($i=0, $j=count($aRes); $i<$j; $i++)
     mysql_query('UPDATE tabelle SET pass=''.md5($aRes[$i]).'' WHERE pass=''.$aRes[$i].''');

    Kann natürlich auch sein, daß das noch deutlich einfacher geht.
    Vorm Ausprobieren aber unbedingt 'ne Sicherheitskopie der Tabelle machen ;)

    Frage an die PHP-/MySQL-Interna-Checker:

    Kann ich das Script wiefolgt kürzen ohne MySQL vollkommen durcheinander zu bringen?

    $rRes = mysql_query('SELECT pass FROM tabelle');
    while($x = mysql_fetch_array($rRes))
     mysql_query('UPDATE tabelle SET pass=''.md5($x['pass']).'' WHERE pass=''.$x['pass'].''');

    Ich würde sagen ja, weil ich davon ausgehe, daß MySQL das Ergebnis des SELECTs erstmal insgesamt ausliest und puffert und nicht zeilenweise erst zum Abrufzeitpunkt. Aber 100%ig sicher bin ich mir nicht.

    Ciao,

    Harry

    --
      Die ideale Zeit für Firntouren:
      http://harry.ilo.de/projekte/berge/
    1. hi,

      Kann natürlich auch sein, daß das noch deutlich einfacher geht.

      UPDATE tabelle SET pass = MD5(pass)
      sollte eigentlich ausreichen.

      Vorm Ausprobieren aber unbedingt 'ne Sicherheitskopie der Tabelle machen ;)

      kann ich nur unterschreiben.

      evtl. ist auf eine temporäre zusatzspalte angebracht, wenn obiges so direkt nicht geht.
      in eine neue spalte den MD5-wert reinsetzen lassen, nachher alte spalte löschen und neue umbenennen.

      gruss,
      wahsaga