> 백엔드 개발 > Golang > Node.js 호환성을 위해 Golang에서 Bcrypt를 사용하여 비밀번호를 해시하는 방법은 무엇입니까?

Node.js 호환성을 위해 Golang에서 Bcrypt를 사용하여 비밀번호를 해시하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-09 12:33:18
원래의
1004명이 탐색했습니다.

How to Hash Passwords with Bcrypt in Golang for Node.js Compatibility?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿