Zufallwert oder MD5 aus vorhandener Spalte in zusätzliche Spalte eintragen

Zufallwert oder MD5 aus vorhandener Spalte in zusätzliche Spalte eintragen

am 17.02.2007 18:59:29 von Kai Koenig

Hallo NG,

ich ringe mit mir, ob ich ein wenig PHP-Code Stricke, oder es
eleganterweise mit ein bis zwei SQL-Queries getan ist.
Vorhanden ist eine Adresstabelle, als PK wird die Datensatznummer
verwendet. Die Tabelle möchte ich jetzt zunächst mit einem Feld salt1
erweitern, dort sollen genau 8 Zufallsziffern/Buchstaben rein (keine
Sonderzeichen, "nacktes" ASCII).

Im zweiten Schritt kommt noch eine Spalte 'hashwert' dazu. Jetzt soll
aus der Datensatznummer 'lnummer' und 'salt1' ein MD5-Hash gebildet
werden und in die Spalte 'hashwert' eingetragen werden.

Das Erweitern der Tabellen ist ja über phpmyadmin schnell gemacht (ein
ALTER TABLE ist also nicht mehr vonnöten). Lässt sich das erstellen der
Salts und Hashes über SQL-Queries erledigen?
Bereits zu Gemüte geführt habe ich mir
http://dev.mysql.com/doc/refman/4.1/en/tips.html

Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt.

Hat jemand noch heiße Tipps für mich oder gar eine solche Query im Kopf?

Danke!

VG

Kai

Re: Zufallwert oder MD5 aus vorhandener Spalte in zusätzliche Spalte eintragen

am 17.02.2007 22:23:28 von Kai Koenig

Hallo,

war irgendwie doch einfacher, als ich gedacht habe.

Um den Salt zu erzeugen: UPDATE adressen SET salt = SUBSTR(RAND(),-6)
salt ist int 6 mit Zerofill.

Um den Hash zu erzeugen: UPDATE adressen SET hashihash = MD5(ID)

und um beides zu verwurschteln: UPDATE adressen SET hashihash = MD5(ID+salt)

Vielleicht geht es ja noch ästhetischer in einer Query?

VG

Kai