Maison  >  Article  >  développement back-end  >  Comment réaliser un hachage de mot de passe dans Golang équivalent à la fonction crypt() de PHP ?

Comment réaliser un hachage de mot de passe dans Golang équivalent à la fonction crypt() de PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 02:13:30687parcourir

How to Achieve Password Hashing in Golang Equivalent to PHP's crypt() Function?

Équivalent Golang de la fonction crypt() de PHP

La fonction crypt() de PHP est polyvalente dans sa capacité à hacher des valeurs à l'aide de divers algorithmes, notamment sha256, sha512 et Blowfish. Trouver un équivalent Golang exact peut être difficile en raison de ces variations.

Solution alternative utilisant bcrypt

Malgré l'absence d'équivalent Golang exact, bcrypt offre une alternative fiable pour hachage de mot de passe. Voici comment obtenir une fonctionnalité similaire :

<code class="go">import "golang.org/x/crypto/bcrypt"

// Determines if the bcrypt version of "enter-new-password" matches the provided hash
check := bcrypt.CompareHashAndPassword([]byte("a$f5561d2634fb28a969f2dO8QeQ70f4bjCnF/.GvPpjj.8jgmtzZP2"), []byte("enter-new-password"))

// Log the result
log.Println(check)</code>

Ce code renverra zéro si la version bcrypt de "enter-new-password" correspond au hachage fourni et à un objet d'erreur dans le cas contraire.

Considérations :

  • La fonction crypt() de PHP offre une large gamme d'algorithmes de hachage, tandis que Golang nécessite une spécification explicite du type de hachage et du coût.
  • Dans l'exemple à condition, un hachage de type Blowfish a été supposé en fonction de la présence du préfixe "$2a$" dans la valeur de hachage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn