Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erreicht man ein Passwort-Hashing in Golang, das der crypt()-Funktion von PHP entspricht?

Wie erreicht man ein Passwort-Hashing in Golang, das der crypt()-Funktion von PHP entspricht?

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 02:13:30687Durchsuche

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

Golang-Äquivalent der crypt()-Funktion von PHP

Die crypt()-Funktion von PHP ist vielseitig in ihrer Fähigkeit, Werte mithilfe verschiedener Algorithmen zu hashen, darunter sha256, sha512 und Blowfish. Aufgrund dieser Variationen kann es schwierig sein, ein genaues Golang-Äquivalent zu finden.

Alternative Lösung mit bcrypt

Trotz des Fehlens eines genauen Golang-Äquivalents bietet bcrypt eine zuverlässige Alternative für Passwort-Hashing. So erreichen Sie eine ähnliche Funktionalität:

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

Dieser Code gibt Null zurück, wenn die bcrypt-Version von „enter-new-password“ mit dem bereitgestellten Hash übereinstimmt, andernfalls mit einem Fehlerobjekt.

Überlegungen:

  • Die crypt()-Funktion von PHP bietet eine breite Palette von Hashing-Algorithmen, während Golang eine explizite Angabe des Hash-Typs und der Kosten erfordert.
  • Im Beispiel Vorausgesetzt, es wurde ein Blowfish-Hash basierend auf dem Vorhandensein des Präfixes „$2a$“ im Hash-Wert angenommen.

Das obige ist der detaillierte Inhalt vonWie erreicht man ein Passwort-Hashing in Golang, das der crypt()-Funktion von PHP entspricht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn