Tak swoją drogą, to jak polecacie to zapisywać w bazie danych?
Najczęściej zapisuje się w postaci:
Ale myślałem, żeby zrobić to bardziej w tę stronę, aby zrobić tak jakby dwie sole:
<?php
$pass = "marek";
$random = mt_rand(128, 512); // w php7 random_int();
$database_salt = bin2hex(openssl_random_pseudo_bytes($random));
$program_salt = bin2hex(openssl_random_pseudo_bytes(128));
$hash = crypt($pass, "$2a$12$".$program_salt.$database_salt);
Wtedy $database_salt byłby zapisywany do bazy danych, a $program_salt byłby w kodzie. Wtedy nawet, gdy potencjalny włamywacz posiądzie i salt i hash hasła to nie pomoże mu to zbytnio, bo musiałby znać jeszcze salt programowy.
Przekombinowane? :)