Home >Backend Development >Golang >How to Achieve Password Hashing in Golang Equivalent to PHP\'s crypt() Function?

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

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 02:13:30756browse

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

Golang Equivalent of PHP's crypt() Function

PHP's crypt() function is versatile in its ability to hash values using various algorithms, including sha256, sha512, and blowfish. Finding an exact Golang equivalent may be challenging due to these variations.

Alternative Solution using bcrypt

Despite the lack of an exact Golang equivalent, bcrypt offers a reliable alternative for password hashing. Here's how to achieve similar functionality:

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

This code will return nil if the bcrypt version of "enter-new-password" matches the provided hash and an error object otherwise.

Considerations:

  • PHP's crypt() function offers a wide range of hashing algorithms, while Golang requires explicit specification of the hash type and cost.
  • In the example provided, a blowfish-type hash was assumed based on the presence of the "$2a$" prefix in the hash value.

The above is the detailed content of How to Achieve Password Hashing in Golang Equivalent to PHP\'s crypt() Function?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn