Sen doğru yolda, ama bana senin sistemini geliştirmeye yardımcı olsun.
Güçlü bir rasgele bir anahtar oluşturmak ve belge kök üstünde bir dosyada saklayabilirsiniz:
/home/username/key
/home/username/public_html/login.php
Dosya mümkün olduğu kadar çok rasgele gücü ile ikili veri (sözde) içermelidir. Rasgele veri 512-bit oldukça iyi olmalıdır.
Sonra sistemde her kullanıcı için benzersiz bir tuz oluşturur. Bu tuz rasgele ikili veri 16-bit daha güçlü olmak zorunda değildir.
Son olarak, şifre sağlamalarının gibi bir şey olmalıdır:
hash('sha256', $password . $salt . $key);
hash algoritması çok önemli yere. MD5 veya SHA-1 kullanmayın. SHA-2 ailesi kullanın, tipik SHA-256 veya SHA-512. Ayrıca, Whirlpool iyi bir seçimdir.
Eğer daha sistem geliştirmek istiyorsanız, yinelenen tekrar ve tekrar gibi karma olabilir:
public static function hash($algorithm, $data, $iterations = 1, $rawOutput = false)
{
if ($iterations < 1)
throw new Exception('There must be at least one iteration.');
while ($iterations--)
{
$data = hash($algorithm, $data, true);
}
return ($rawOutput ? (binary) $data : bin2hex($data));
}