Um sha256 tem 256 bits - como seu nome indica.
Como sha256 retorna uma representação hexadecimal, 4 bits são suficientes para codificar cada caractere (em vez de 8, como para ASCII), então 256 bits representariam 64 caracteres hexadecimais, portanto, você precisa de um
varchar(64)
, ou até mesmo um char(64)
, pois o comprimento é sempre o mesmo, não variando em nada. E a demonstração:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Darei à você :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
ou seja, uma string com 64 caracteres.