Ho intenzione di eseguire SHA256
su una password + salt, ma non so quanto a lungo rendere VARCHAR
quando si imposta il database MySQL. Qual è una buona lunghezza?
Un sha256 è lungo 256 bit, come indica il nome.
Se si utilizza una rappresentazione esadecimale, ogni cifra codifica per 4 bit; quindi hai bisogno di 64 cifre per rappresentare 256 bit - quindi, hai bisogno di un varchar(64)
, o char(64)
, in quanto la lunghezza è sempre la stessa, non varia affatto.
E la demo:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Ti darò:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
cioè una stringa con 64 caratteri.
Opzioni di codifica per 256 bit di SHA256:
CHAR(44)
compreso il carattere di riempimentoCHAR(64)
BINARY(32)
Preferisco usare BINARY (32) poiché è il modo ottimizzato!
È possibile inserire in 32 cifre esadecimali da (00 a FF).
Quindi BINARIO (32)!
Perché dovresti renderlo VARCHAR? Non varia Sono sempre 64 caratteri, che possono essere determinati eseguendo qualsiasi cosa in no dei calcolatori SHA-256 online .
Sarà risolto 64 caratteri, quindi usa char(64)