sql >> Database teknologi >  >> RDS >> Mysql

Mysql password hashing metode gammel vs ny

Under nogle forhold kan du muligvis stadig indstille og bruge en "ny hashing-algoritme-adgangskode".
MySQL 4.1+-servere er i stand til at håndtere begge login-algoritmer. Hvilken en der bruges, er uafhængig af variablen old-passwords. Hvis MySQL finder en hash på 41 tegn, der starter med *, bruger den det nye system. Og PASSWORD()-funktionen er også i stand til at bruge begge algoritmer. Hvis feltet mysql.user.Password er bredt nok til at gemme 41 tegn, og variablen old-passwords er 0, vil det skabe en "ny" adgangskode. dokumentation til old_passwords siger Variable Scope Both så du kan muligvis ændre det til din session.
Opret forbindelse til MySQL-serveren (med en klient, der er i stand til at gøre det på trods af de globale old_passwords=1), f.eks. HeidiSQL og prøv følgende:

SET SESSION old_passwords=0;
SELECT @@global.old_passwords,@@session.old_passwords, Length(PASSWORD('abc'));

Hvis den udskriver 1, 0, 41 (hvilket betyder, at de globale old_passwords er slået til, men for sessionen er den slået fra, og PASSWORD() returnerede en "ny" adgangskode) bør du være i stand til at indstil en ny adgangskode ved at bruge den nye algoritme til din konto inden for samme session.

Men hvis dreamhost virkelig ønsker at deaktivere den nye adgangskodealgoritme, vil mysql.user.Password-feltet være mindre end 41 tegn langt, og der er ikke noget du kan gøre ved det (bortset fra at nage dem).



  1. Hvordan tilføjer du en NOT NULL-kolonne til en stor tabel i SQL Server?

  2. Kan jeg bruge en PDO-forberedt sætning til at binde en identifikator (et tabel- eller feltnavn) eller et syntaksnøgleord?

  3. Databasedesign til kommentarer og svar

  4. Hvorfor kommer resultater fra en SQL-forespørgsel ikke tilbage i den rækkefølge, jeg forventer?