sql >> Databasteknik >  >> RDS >> Mysql

Vilka är svagheterna med denna användarautentiseringsmetod?

Gör dig själv en tjänst och använd ett standardbibliotek för att hasha dina lösenord.

Eftersom säkerheten tenderar att vara mycket mer komplicerad och med mer osynliga förvrängningsmöjligheter än de flesta programmerare skulle kunna hantera ensamma, är det nästan alltid det enklaste och säkraste (om inte det enda) tillgängliga alternativet att använda ett standardbibliotek.

Standardbiblioteket :
Ta en titt på:Bärbart PHP-lösenordshashingramverk :phpass och se till att du använder CRYPT_BLOWFISH algoritm om det alls är möjligt.

exempel på kod som använder phpass (v0.2):

require('PasswordHash.php');

$pwdHasher = new PasswordHash(8, FALSE);

// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );

// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

PHPass har implementerats i några ganska välkända projekt:

  • phpBB3
  • WordPress 2.5+ samt bbPress
  • Drupal 7-versionen, (modul tillgänglig för Drupal 5 och 6)
  • andra

Det som är bra är att du inte behöver oroa dig för detaljerna, dessa detaljer har programmerats av personer med erfarenhet och granskats av många människor på internet.

Vad du än gör om du väljer 'Jag gör det själv, tack ', använd inte MD5 längre . Det är en trevlig hashalgoritm, men helt trasig av säkerhetsskäl .

Använder för närvarande krypt , med CRYPT_BLOWFISH är bästa praxis.
CRYPT_BLOWFISH i PHP är en implementering av Bcrypt-hash. Bcrypt är baserat på Blowfish-blockchifferet och använder dess dyra nyckelinställning för att sakta ner algoritmen.

För mer information om system för lösenordslagring kan du också läsa Jeff `s blogginlägg om det:Du lagrar förmodligen lösenord felaktigt



  1. Hur man gör en rullbar JTable

  2. Vilka är fördelarna med att arbeta med ett Access Support Company?

  3. SQL-utvecklare 4.1.2

  4. Indexerar mysql 5.0 nollvärden?