¿Cuánto dura el hash SHA256?
Voy a ejecutar SHA256
una contraseña + salt, pero no sé cuánto tiempo debo hacer VARCHAR
al configurar la base de datos MySQL. ¿Cuál es una buena longitud?
Un sha256 tiene 256 bits de longitud, como su nombre indica.
Dado que sha256 devuelve una representación hexadecimal, 4 bits son suficientes para codificar cada carácter (en lugar de 8, como para ASCII), por lo que 256 bits representarían 64 caracteres hexadecimales, por lo tanto, necesita a varchar(64)
, o incluso a char(64)
, ya que la longitud es siempre la misma. , sin variar en absoluto.
Y la demostración:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Te regalaré :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
es decir, una cadena con 64 caracteres.
Opciones de codificación para los 256 bits de SHA256:
- Base64: 6 bits por carácter =
CHAR(44)
incluido el carácter de relleno - Hexadecimal: 4 bits por carácter =
CHAR(64)
- Binario: 8 bits por byte =
BINARY(32)
¡Prefiero usar BINARY(32) ya que es la forma optimizada!
Puede colocar en esos 32 dígitos hexadecimales desde (00 a FF).
¡Por lo tanto BINARIO(32)!
¿Por qué lo harías VARCHAR? No varía. Siempre son 64 caracteres, que se pueden determinar ejecutando cualquier cosa en una de las calculadoras SHA-256 en línea .
Se arreglarán 64 caracteres, así que usechar(64)