sha256 ma długość 256 bitów – jak wskazuje jego nazwa.
Ponieważ sha256 zwraca reprezentację szesnastkową, 4 bity wystarczą do zakodowania każdego znaku (zamiast 8, jak w przypadku ASCII), więc 256 bitów reprezentuje 64 znaki szesnastkowe, dlatego potrzebujesz varchar(64)
, a nawet char(64)
, ponieważ długość jest zawsze taka sama i nie zmienia się wcale.
I demo :
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Da ci :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
tj. ciąg znaków z 64 znakami.