Je vais exécuter SHA256
sur un mot de passe + salt, mais je ne sais pas combien de temps il faut pour créer mon VARCHAR
lors de la configuration de la base de données MySQL. Qu'est-ce qu'une bonne longueur?
Un sha256 a une longueur de 256 bits - comme son nom l'indique.
Si vous utilisez une représentation hexadécimale, chaque code numérique correspond à 4 bits; vous avez donc besoin de 64 chiffres pour représenter 256 bits - vous avez donc besoin d'une varchar(64)
ou d'une char(64)
, car la longueur est toujours la même et ne varie pas du tout.
Et la démo:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Te donnera :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
c'est-à-dire une chaîne de 64 caractères.
Options de codage pour les 256 bits de SHA256:
CHAR(44)
, y compris le caractère de remplissageCHAR(64)
BINARY(32)
Je préfère utiliser BINARY (32) car c'est la méthode optimisée!
Vous pouvez placer dans ces 32 chiffres hexadécimaux de (00 à FF).
Donc BINARY (32)!
Pourquoi voudriez-vous le faire VARCHAR? Cela ne varie pas. C'est toujours 64 caractères, ce qui peut être déterminé en exécutant n'importe quoi dans ne des calculatrices en ligne SHA-256 .
Il sera fixé à 64 caractères, utilisez donc char(64)