Un sha256 a une longueur de 256 bits -- comme son nom l'indique.
Puisque sha256 renvoie une représentation hexadécimale, 4 bits suffisent pour encoder chaque caractère (au lieu de 8, comme pour l'ASCII), donc 256 bits représenteraient 64 caractères hexadécimaux, donc vous avez besoin d'un varchar(64)
, ou même un char(64)
, car la longueur est toujours la même, ne variant pas du tout.
Et la démo :
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Vous donnera :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
c'est-à-dire une chaîne de 64 caractères.