Un hachage sha512 est représenté comme un Chaîne de 128 caractères .
Par exemple, la partie suivante du code :
$sha512 = hash('sha512', "Hello, World!");
echo strlen($sha512);
Donne ce résultat :
128
Ce qui signifie que votre char(40)
est bien trop petite, et que vous devriez utiliser une char(128)
.
Une autre solution consisterait à le stocker sous forme binaire, et non sous forme de chaîne de caractères - ce qui signifierait 64 octets.
Mais notez qu'il pourrait être plus difficile de traiter avec cette représentation, dans certains cas, je suppose.