Je vais exécuter SHA256un mot de passe + sel, mais je ne sais pas combien de temps pour créer ma VARCHARbase de données MySQL. Quelle est une bonne longueur?
Je vais exécuter SHA256un mot de passe + sel, mais je ne sais pas combien de temps pour créer ma VARCHARbase de données MySQL. Quelle est une bonne longueur?
Réponses:
Un sha256 mesure 256 bits - comme son nom l'indique.
Puisque sha256 renvoie une représentation hexadécimale, 4 bits sont suffisants pour coder chaque caractère (au lieu de 8, comme pour ASCII), donc 256 bits représenteraient 64 caractères hexadécimaux, donc vous avez besoin d'un varchar(64), ou même d'un char(64), car la longueur est toujours la même , ne variant 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.
varchar(65)pour un leader !... juste dire.
SELECT length(to_base64(unhex(sha2('say hello to my little friend',256))))elle est toujours égale à 44 quelle que soit la longueur de la chaîne d'origine.
Options d'encodage pour les 256 bits du SHA256:
CHAR(44)y compris le caractère de remplissageCHAR(64)BINARY(32)=peut être retiré et rajouté.
Je préfère utiliser BINARY (32) car c'est la manière optimisée!
Vous pouvez placer dans ces 32 chiffres hexadécimaux de (00 à FF).
Donc BINAIRE (32)!
UPDATE...SET hash_column=UNHEX(sha256HexString). Ensuite, lors de la récupération, vous SELECT HEX(hash_column) AS hash_column.
Pourquoi voudriez-vous en faire VARCHAR? Cela ne varie pas. Il s'agit toujours de 64 caractères, qui peuvent être déterminés en exécutant n'importe quoi dans l' une des calculatrices SHA-256 en ligne .
SHA-*pour hacher les mots de passe, VEUILLEZ lire ceci en premier .