Benim PHP güvenlik algoritması etkin kullanıcı kimlik bilgilerini saklamak mı?

0 Cevap php

Bu soru yaşıyorum belirli bir programlama sorunu hakkında - benim kod (yazılım ve algoritma) bir veritabanında depolamak, kullanıcı kimlik bilgileri için yeterli olduğundan emin olmak istiyorum.

// Get a 32 character salt like '69Mt6nexL1rsjWnu011S53MpB/WmT4Vl'
$passwordSalt = Security::generateBase64Salt();

$user = new User();
$user->setUsername($_POST['username']);

// $_POST['password'] comes in as a 128 character string
// Client side javascript is used to sha512 the string before sending it over POST
// see http://pajhome.org.uk/crypt/md5/
// This prevents novice eavesdroppers from capturing the raw password in plaintext
$user->setPassword(
    hash('sha512', $passwordSalt.$_POST['password'])
);
$user->setPasswordSalt($passwordSalt);
$user->save();

Burada belirli bir parola veritabanı girişi bulunuyor:

alt text

Password:

69a78a7586a111b8a567b2d4f42f93f01fb59d337f7fa3c35949a66b246095778c1fa01ff4026abace476091e1e9a183bbdec1c31b12ce3f786921895c98cf6f

Salt:

69Mt6nexL1rsjWnu011S53MpB/WmT4Vl

Questions:

  • Bu algoritma ile herhangi bir miras kusurları var mı?
  • Bu tuz + parola karma olarak aynı veritabanı ve tablodaki tuz saklamak için Tamam mı?
  • Ben tabloda birkaç yüz bin kullanıcı varsa (birkaç saniye büyüklüğüne) büyük 128 karakter şifre neden giriş performans sorunlarınız mı?
  • Bu veriler orijinal şifre üretmek için ters olabilir?

For Fun:

Eğer tuz ve tuz + şifre hash kullanarak orijinal şifre ile bana sağlayabilir eğer 5 $ paypal edeceğiz.

0 Cevap