web-dev-qa-db-fra.com

Combien de temps dure le hash SHA256?

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?

224
Tony Stark

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.

302
Pascal MARTIN

Options de codage pour les 256 bits de SHA256:

  1. Base64: 6 bits par caractère = CHAR(44), y compris le caractère de remplissage
  2. Hex: 4 bits par caractère = CHAR(64)
  3. Binaire: 8 bits par octet = BINARY(32)
59
RickNZ

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)!

25
marctrem

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 .

20
ceejayoz

Il sera fixé à 64 caractères, utilisez donc char(64)

6
Noushad