Golang에서 Bcrypt를 사용하여 비밀번호 해싱(Node.js 호환성)
사용자 인증을 위해 Node.js 및 Passport에서 Golang으로 마이그레이션하면 특히 데이터베이스에 저장된 암호화된 비밀번호를 처리할 때 문제가 발생합니다. 이 가이드에서는 Node.js와 호환되는 Golang에서 bcrypt 해시 문자열을 생성하는 방법을 살펴봅니다.
Node.js 암호화 코드
var bcrypt = require('bcrypt'); bcrypt.genSalt(10, function(err, salt) { if(err) return next(err); bcrypt.hash(user.password, salt, function(err, hash) { if(err) return next(err); user.password = hash; next(); }); });
Golang 등가
Golang에서 동일한 해싱 결과를 얻으려면 다음을 사용하세요. golang.org/x/crypto/bcrypt 패키지.
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
작업 예제
package main import ( "golang.org/x/crypto/bcrypt" "fmt" ) func main() { password := []byte("MyDarkSecret") // Hashing the password with the default cost of 10 hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) if err != nil { panic(err) } fmt.Println(string(hashedPassword)) // Comparing the password with the hash err = bcrypt.CompareHashAndPassword(hashedPassword, password) fmt.Println(err) // nil means it is a match }
이 예제는 Golang에서 bcrypt를 사용하여 해시된 해시를 생성하는 방법을 보여줍니다. Node.js에서 생성된 것과 동일한 비밀번호를 사용하므로 Golang으로 전환하는 동안 암호화된 비밀번호를 원활하게 마이그레이션할 수 있습니다.
위 내용은 Node.js 호환성을 위해 Golang에서 Bcrypt를 사용하여 비밀번호를 해시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!