Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst 16 Byte Passwort ändern auf 41 Byte (1500 Einträge)

Mitglied: Bommel1302

Bommel1302 (Level 1) - Jetzt verbinden

14.12.2012 um 23:50 Uhr, 4403 Aufrufe, 10 Kommentare

Hallo zusammen,

ich hoffe Ihr könnt mir mal wieder helfen.
Ich möchte in einer MYSQL Tabel das die Passwörter der User von 16Byte auf 41 Byte ändern.
Leider habe ich keinen Ansatz wie diese Änderung möglich ist.
Jeder User hat ja ein anderes Passwort und soll dieses nach der Umstellung auch behalten.
Habe es mit dem SQL-Befehl versucht, jedoch ist danach bei allen Usern das Passwort gleich.
UPDATE mysql.user SET Password = PASSWORD('password') WHERE 1;

Wie kann ich die 1500 Datensätze per Script abarbeiten?

Gruß Marcel
Mitglied: Guenni
15.12.2012 um 12:57 Uhr
Hi Bommel1302,

Wie kann ich die 1500 Datensätze per Script abarbeiten?

Du könntest z.B. die Update-Anweisung, . . . set spalte = wert where . . ., spalte = wert where . . . usw.,

in einer Schleife zusammensetzen. Leider hat die Tabelle user keinen eindeutigen Index, z.B. eine ID, und

in den Spalten host und user können Hosts und User auch noch mehrfach unter gleichem Namen vorhanden sein.

Eine korrekte Anweisung wäre dann . . . password = PASSWORD(password) where host = 'host' and user = 'user'

für jede Zeile der Tabelle.


01.
<?php 
02.
$query = "select host, user, password from user"; 
03.
$result = mysql_query($query); 
04.
/* 
05.
* Update-Anweisung in Variable speichern 
06.
*/ 
07.
$update = "update user set "; 
08.
/* 
09.
* Die Änderungs-Anweisung, where-Klausel und ein Komma an die Anweisung anhängen 
10.
*/ 
11.
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ 
12.
	$update.=" password = PASSWORD(".$row['password'].") where host = ".$row['host']." and user = ".$row['user'].","; 
13.
14.
/* 
15.
* Das letzte Komma entfernen 
16.
*/ 
17.
$update = substr($update, 0, -1); 
18.
/* 
19.
* Ausgabe zum Prüfen 
20.
*/ 
21.
echo $update; 
22.
// mysql_query($update); 
23.
?>
Natürlich nicht selber getestet, da ich meine eigene user-Tabelle nicht verändern will

Gruß
Günni
Bitte warten ..
Mitglied: Bommel1302
15.12.2012, aktualisiert um 14:40 Uhr
Hallo Günni,

danke für die Unterstützung.

Ich haben das mal probiert und habe das Script von Dir angepasst. Ich habe eine eindutige ID der User und die User sind nur einmal in der Datenbank.

Jedoch bekomme ich einen Fehler beim ausführen.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /XXXXXX/DBUpdate.php on line 23
update username set

Hier das Script
01.
<?  
02.
include("config/config.php"); 
03.
if ($dbhost=="") { 
04.
	echo"<meta http-equiv=\"refresh\" content=\"0; URL=install.php\">"; 
05.
}else{ 
06.
 
07.
08.
 
09.
@session_start(); 
10.
mysql_connect( "$dbhost", "$dbuser", "$dbpass")  or  die("$wort_konnte_datenbankverbindung_nicht_herstellen"); 
11.
mysql_select_db( "$dbname")  or  die("Datenbank nicht gefunden"); 
12.
 
13.
 
14.
$query = "select id, username, pwd from user";  
15.
$result = mysql_query($query);  
16.
/*  
17.
* Update-Anweisung in Variable speichern  
18.
*/  
19.
$update = "update username set ";  
20.
/*  
21.
* Die Änderungs-Anweisung, where-Klausel und ein Komma an die Anweisung anhängen  
22.
*/  
23.
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){  
24.
$update.=" pwd = PASSWORD(".$row['pwd'].") where host = ".$row['id']." and username = ".$row['username'].",";  
25.
}  
26.
/*  
27.
* Das letzte Komma entfernen  
28.
*/  
29.
$update = substr($update, 0, -1);  
30.
/*  
31.
* Ausgabe zum Prüfen  
32.
*/  
33.
echo $update;  
34.
// mysql_query($update);  
35.
?> 
36.
 
Bitte warten ..
Mitglied: Guenni
15.12.2012 um 17:17 Uhr
Hi Bommel1302,


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource . . .


Das ist jetzt kein direkter Fehler im Script. mysql_fetch_array erwartet ein Abfrageergebnis,

das von mysql_query geliefert wurde. Der Fehler liegt dann in der Formulierung der Abfrage

und/oder in der Korrektheit der abgefragten Tabellen und Feldnamen.

01.
<?php 
02.
$result = mysql_query($query); 
03.
 
04.
if(!$result){ 
05.
 echo mysql_error(); 
06.
 exit; 
07.
08.
?>

Das Update würde eh' nicht funktionieren, da du die tabelle user abfragst . . .

$query = "select id, username, pwd from user";

. . . aber in der Update-Anweisung eine Tabelle namens username angibst . . .

$update = "update username set ";

Gruß
Günni
Bitte warten ..
Mitglied: Bommel1302
15.12.2012 um 19:42 Uhr
Hallo Günni,

habe das Script entsprechend angepasst.
Es läuft jetzt. Leider hat es nicht den gewünschten Effekt.
Bei der Ausführung wird das Passwort ja ausgelesen aber nur der Hash nicht in den Klartext.
Um das Passwort in ein 41Byte Hash zu wandeln muss es ja einmal im Klartext sein um es dann zu wandeln.
Gibt es hier eine Lösung für?

Gruß Marcel
Bitte warten ..
Mitglied: Pjordorf
15.12.2012 um 20:06 Uhr
Hallo,

Zitat von Bommel1302:
Bei der Ausführung wird das Passwort ja ausgelesen aber nur der Hash nicht in den Klartext.
Was denn sonst? Dachtest du das du so das Passwort in Klarschrift geliefert bekommst?

Um das Passwort in ein 41Byte Hash zu wandeln muss es ja einmal im Klartext sein um es dann zu wandeln.
Wie soll es denn anders gehen? Der 41 Byte lange Hasch ist doch neu berechnet und hat mit dem alten 16Byte langen Hadch doch nichts gemeinsam. Wenn du die Passwörter der 1500 Einträge nicht kennst, dann kann nur der Inhaber der Passwörter dies Ändern. Ist doch auch gut so, oder?

Das http://dev.mysql.com/doc/refman/5.1/de/password-hashing.html hast du verstanden welche Problme dir die Umstellung geben kann?

Gruß,
Peter
Bitte warten ..
Mitglied: Bommel1302
15.12.2012 um 20:15 Uhr
Ja ich habe das verstanden.
Leider hat wohl der Hoster etwas an seinen Einstellungen geändert, so das das Script was seit 2Jahren läuft plötzlich nicht mehr läuft und die 16Byte Hash nicht mehr akzeptiert.
Bei der Eingabe des Passworts durch den User wird ein 41Byte Hash erzeugt, welcher natürlich nicht zu dem Hash in der Datenbank passt.
Gibt es hier eine Lösung um das wieder zum laufen zu bekommen?

Gruß Marcel
Bitte warten ..
Mitglied: nxclass
16.12.2012, aktualisiert um 00:09 Uhr
Das klingt mir stark nach einem PHP update, welches das Standard verhalten des Befehls crypt() geändert hat - wenn Du crypt() verwendest, dann lies mal die Beschreibung auf http://php.net/manual/de/function.crypt.php durch und frag ggf deinen Provider nach den PHP Versionen welche verwendet wurden.

EDIT: .. oder gib uns mal einen Code Schnippsel - welcher zeigt wie bei Dir diese Hashes gebaut werden.
EDIT: der Link von Pjordorf ( http://dev.mysql.com/doc/refman/5.1/de/password-hashing.html ) zeigt eigentlich schon das Problem und die Lösung.
benutze OLD_PASSWORD() in der SQL Anweisung wenn der Hash 16 Zeichen lang ist - wenn dieser bei der Prüfung passt, sollte ggf gleich ein Hash mit der aktuellen PASSWORD() Funktion angelegt werden.
Bitte warten ..
Mitglied: Bommel1302
16.12.2012 um 09:56 Uhr
Laut dem Hoster hat sich die PHP Version 5.2 nicht geändert.
Leider bin ich nicht der Experte in PHP und Versuche die Anmeldung wieder zum laufen zu bringen.
Ich versuche mal ob ich den Code finde in dem der Hash gebaut wird.
Ferde ihn dann posten.

@nxclass

kannst du das mir etwas genauer erklären?

Zitat von nxclass:
benutze OLD_PASSWORD() in der SQL Anweisung wenn der Hash 16 Zeichen lang ist - wenn dieser bei der Prüfung passt, sollte
ggf gleich ein Hash mit der aktuellen PASSWORD() Funktion angelegt werden.

Gruß Marcel
Bitte warten ..
Mitglied: nxclass
16.12.2012 um 10:10 Uhr
suche im SQL nach PASSWORD() und ersetze es mit OLD_PASSWORD() - wenn dann die Anmeldung geht, kannst Du dir Gedanken machen wie Du in Zukunft deine Passwörter speicherst.
Bitte warten ..
Mitglied: Bommel1302
16.12.2012, aktualisiert um 21:54 Uhr
Hallo,

die anmeldung funktioniert wieder.
Habe die Querys angepasst und frage jetzt mit einem "or" nach PASSWORD() und OLD_PASSWORD().

Werde jetzt mich drum kümmern, das beim Ausloogen das Passwort im 41Byte Hash geschrieben wird.

Danke nochmal für eure Hilfe.


Gruß Marcel
Bitte warten ..
Ähnliche Inhalte
Sicherheit

Heute ist "Ändere dein Passwort" Tag

Information von transoceanSicherheit11 Kommentare

Moinsen, eigentlich wäre das ja ein passendes Freitagsthema. Über Sinn oder Unsinn streiten die Experten ja schon seit mehreren ...

Windows 10

Admin Passwort lässt sich nicht ändern

gelöst Frage von Caraboo75Windows 1017 Kommentare

Guten Tag . Habe Windows 10 heruntergeladen und ein Benutzerkonto mit Passwort festgelegt.Sobald ich ein Update mache, verlangt er ...

Microsoft

Maske für Passwort ändern erscheint nicht

Frage von steftsMicrosoft6 Kommentare

Morgen, wir haben in unserer SBS 2011 / Windows 7 Umgebung über die Gruppenrichtlinien eine Passwortänderung alle 40 Tage ...

Windows Server

Windows Kernel event ID 41

gelöst Frage von HeinrichMWindows Server1 Kommentar

Guten Morgen zusammen, ich habe einen Windows Kernel event ID 41 bei einer Hyper-V Maschine. Natürlich habe ich auch ...

Neue Wissensbeiträge
Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 StundeRouter & Routing

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 15 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 20 StundenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 1 TagMicrosoft Office5 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless12 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...