Passwort klappt nicht mit MD5

raci

Mitglied
Hallo

Ich habe das Problem das,das user_password im Klartext angezeigt wird und möchte es in MD5 haben.

Versucht habe ich es so

PHP:
if (!mysql_query("CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(100) NOT NULL default '', `user_password` varchar(50) NOT NULL default '', `md5_hash` varchar(100) NOT NULL defaul'', PRIMARY KEY  (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ")
           
                

            
 if (!mysql_query("REPLACE INTO `users` (`id`, `username`,`user_password`,`md5_hash`) VALUES (1, '" . $_POST['user'] . "', '" . $_POST['pass'] . "', '" . md5($_POST['user'] . $_POST['pass']) . "', '" . md5($_POST['user_password']) . " ') ")) {

Es klappt aber nicht

Bin für jede Hilfe Dankbar

Danke
 
Ich glaube du hast das falsch verstanden.
Das Passwortfeld ist eigentlich ein normales Textfeld und das Passwort wird dort bereits als MD5-Hash hineingeschrieben!

Das geht entweder über php
PHP:
$hash = md5($passwort);

oder über MySql
SQL:
INSERT INTO tabelle (passwort) VALUES (md5('123unsicherespasswort123'))
 
Hi

was klappt nicht?
Fehlermeldungen?
Was denkst du, was stattdessen passieren soll?

Normalerweise speichert man nur das Passwort oder den hash ab, nicht beide.

Und
defaul''
sollte heißen
default ''
 
Hallo

Für ein Script brauche ich beides

user_password ,md5_hash

Der md5_hash funktioniert ja steht ja verschlüsselt in der Datenbank nur das user_password da steht (123)

also so z.b

user_password:123
md5_hash: 984645342546478

möcht das man das user_password nicht lesen kann

der Coder für die Mysql

PHP:
if (!mysql_query("CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(100) NOT NULL default '', `user_password` varchar(50) NOT NULL default '', `md5_hash` varchar(100) NOT NULL default'', PRIMARY KEY  (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ")
           
                

            
 if (!mysql_query("REPLACE INTO `users` (`id`, `username`,`user_password`,`md5_hash`) VALUES (1, '" . $_POST['user'] . "', '" . $_POST['pass'] . "', '" . md5($_POST['user'] . $_POST['pass']) . "', '" . md5($_POST['user_password']) . " ') ")) {



und so gebe ich den User mit Passwort ein

PHP:
     <div class="input_field">
                        <label>User</label>
                        <input name="user" type="text" class="mediumfield"/>
                        </div>
                    <div class="input_field">
                        <label for>User Passwort</label>
                        <input name="pass" type="password" class="mediumfield"/>
                        </div>

Was mache ich Falsch

Danke
 
Das geht nicht. In der Datenbank steht alles als Klartext. Du kannst die Anzeige nicht ändern, die sieht aber eh nur ein Administrator. Allerdings wurden deswegen ja die Hash-Verfahren eingeführt.
 
Was hilft wäre eine Verschlüsselung. Man kann das Passwort dann natürlich entschlüsseln, aber zumindest für den ersten Blick ist es nicht erkennbar.
 
Zum Beispiel mit base64.
PHP:
$passwort = "HierDeinPasswort";
$verschluesseltes_passwort = base64_encode($passwort);
//da kommt dann sowas raus (nur ein Beispiel): RGllcyBpc3QgZWluIHp1IGtvZGllcmVuZGVyIFN0cmluZw==

//Entschlüsseln geht so
$entschluesseltes_passwort = base64_decode($verschluesseltes_passwort);
 
Guten Morgen

Ich habe ein Tip bekommen der leider auch nicht funktioniert

PHP:
<div class="input_field">
                        <label>Passwort</label>
                        <input name="pass" type="password" class="input"<?php if($_POST['pass'] != "" ) {echo ' value=" '. md5($_POST['pass']) . ' "';} ?>
 </div>

Ich kann das Passwort immer noch in Klartext sehen in der Datenbank

Danke
 
Mal abgesehen davon, dass dein HTML fehlerhaft ist:
Du insertest hier nirgends etwas in die DB.
Warum solte sich dort also etwas ändern?

edit: Und wie schon oben gesagt wurde,
von md5 kommt man nicht (einfach) zurück auf das Klartextpasswort.
 

Neue Beiträge

Zurück