Sto leggendo la funzione PHP crypt () . Ho alcune domande su di esso -
-
Qual è il significato del segno "$" finale alla fine della stringa salt che vedo nella maggior parte degli esempi. Il manuale non dice esplicitamente nulla sulla conclusione della stringa salata con esso.
-
È comunque possibile estrarre solo la porzione di sale dall'hash? So che probabilmente non ne ho bisogno, dal momento che la funzione crypt () lo farà internamente quando fa un confronto. Ma solo per il gusto di farlo. Solo per me vedere il sale. Ad esempio, considera questo codice
$pass = 'secret'; $salt = '$2y$07$usesomesillystringforsalt$'; echo crypt($pass, $salt);
L'output di questo è$2y$07$usesomesillystringforex.u2VJUMLRWaJNuw0Hu2FvCEimdeYVO
e non sono sicuro del limite tra il sale e l'hash. La 'e' nella sottostringa 'forex' parte del sale o dell'hash? Sarebbe molto più semplice se potessi semplicemente estrarre la parte salata di esso. -
Anche il manuale di crypt () dice
... Blowfish hashing with a salt as follows: "$2a$", "$2x$" or "$2y$", a two digit cost parameter, "$", and 22 characters from the alphabet "./0-9A-Za-z"....
In base a ciò, prevedo 22 caratteri dopo il segno $ che segue il parametro di costo. Ma considera questo codice
$pass = 'secret'; $salt = '$2y$07$somesillystring$'; echo crypt($pass, $salt);
L'output di questo è$2y$07$somesillystring$$$$$$.O6JLPmGlDvy4BicGmkuBD.DN8OYiIoG
. La mia domanda è perché è riempito solo fino a 21 caratteri seguendo il segno $ dopo il parametro di costo. Mi aspettavo che fosse riempito fino a 22 caratteri.