Go 언어 열심히 배웠어요~ 암호 산열화~
4680 단어 Go
입문
안녕하세요.나는 모 학교에서 프로그래밍 등을 배우는 서버 분야의 프로그래머다.
그렇다면 새해 첫 보도는 golang으로 로그인 기능을 설치할 때의 비밀번호를 산열화하는 방법을 소개한다.
준비 golang.org/x/crypto/bcrypt
를 사용하면 안전한 암호 산열과 검사를 할 수 있습니다.
우선 $GOPATH로 이동하고 다음 명령을 누르십시오.
terminalgo get golang.org/x/crypto/bcrypt
데이터베이스 등 로그인 암호의 산열화 import "golang.org/x/crypto/bcrypt"
func main() {
hash, err := passwordHash("登録用パスワード")
if err != nil {
panic(err)
}
println(hash)
}
// パスワードハッシュを作る関数
func passwordHash(pw string) (string, error) {
hash, err := bcrypt.GenerateFromPassword([]byte(pw), bcrypt.DefaultCost)
if err != nil {
return "", err
}
return string(hash), err
}
GenerateFromPassword
[]byte 형식을 전달해야 하기 때문에 폼 등에서 입력한 비밀번호를 []byte 형식으로 전달해야 합니다.
반환값도 []byte형이므로 DB에 저장할 때 string형으로 변환합니다.
등록된 암호 산열이 입력 암호와 일치하는지 확인 import "golang.org/x/crypto/bcrypt"
func main() {
// hashはDBなどからとってくる
err := passwordVerify(hash, "入力されたパスワード")
if err != nil {
panic(err)
}
println("認証しました")
}
// 登録したパスワードハッシュが入力パスワードにマッチするかどうかを調べる関数
func passwordVerify(hash, pw string) error {
return bcrypt.CompareHashAndPassword([]byte(hash), []byte(pw))
}
CompareHashAndPassword
도 []byte 유형을 전송해야 하기 때문에 전송해야 한다.
이상
무슨 잘못이 있으면 연락 주세요.
끝까지 읽어줘서 고마워요.
Reference
이 문제에 관하여(Go 언어 열심히 배웠어요~ 암호 산열화~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/watataku8911/items/7592f922f78df0d3c365
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
golang.org/x/crypto/bcrypt
를 사용하면 안전한 암호 산열과 검사를 할 수 있습니다.우선 $GOPATH로 이동하고 다음 명령을 누르십시오.
terminal
go get golang.org/x/crypto/bcrypt
데이터베이스 등 로그인 암호의 산열화 import "golang.org/x/crypto/bcrypt"
func main() {
hash, err := passwordHash("登録用パスワード")
if err != nil {
panic(err)
}
println(hash)
}
// パスワードハッシュを作る関数
func passwordHash(pw string) (string, error) {
hash, err := bcrypt.GenerateFromPassword([]byte(pw), bcrypt.DefaultCost)
if err != nil {
return "", err
}
return string(hash), err
}
GenerateFromPassword
[]byte 형식을 전달해야 하기 때문에 폼 등에서 입력한 비밀번호를 []byte 형식으로 전달해야 합니다.
반환값도 []byte형이므로 DB에 저장할 때 string형으로 변환합니다.
등록된 암호 산열이 입력 암호와 일치하는지 확인 import "golang.org/x/crypto/bcrypt"
func main() {
// hashはDBなどからとってくる
err := passwordVerify(hash, "入力されたパスワード")
if err != nil {
panic(err)
}
println("認証しました")
}
// 登録したパスワードハッシュが入力パスワードにマッチするかどうかを調べる関数
func passwordVerify(hash, pw string) error {
return bcrypt.CompareHashAndPassword([]byte(hash), []byte(pw))
}
CompareHashAndPassword
도 []byte 유형을 전송해야 하기 때문에 전송해야 한다.
이상
무슨 잘못이 있으면 연락 주세요.
끝까지 읽어줘서 고마워요.
Reference
이 문제에 관하여(Go 언어 열심히 배웠어요~ 암호 산열화~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/watataku8911/items/7592f922f78df0d3c365
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import "golang.org/x/crypto/bcrypt"
func main() {
hash, err := passwordHash("登録用パスワード")
if err != nil {
panic(err)
}
println(hash)
}
// パスワードハッシュを作る関数
func passwordHash(pw string) (string, error) {
hash, err := bcrypt.GenerateFromPassword([]byte(pw), bcrypt.DefaultCost)
if err != nil {
return "", err
}
return string(hash), err
}
import "golang.org/x/crypto/bcrypt"
func main() {
// hashはDBなどからとってくる
err := passwordVerify(hash, "入力されたパスワード")
if err != nil {
panic(err)
}
println("認証しました")
}
// 登録したパスワードハッシュが入力パスワードにマッチするかどうかを調べる関数
func passwordVerify(hash, pw string) error {
return bcrypt.CompareHashAndPassword([]byte(hash), []byte(pw))
}
CompareHashAndPassword
도 []byte 유형을 전송해야 하기 때문에 전송해야 한다.이상
무슨 잘못이 있으면 연락 주세요.
끝까지 읽어줘서 고마워요.
Reference
이 문제에 관하여(Go 언어 열심히 배웠어요~ 암호 산열화~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/watataku8911/items/7592f922f78df0d3c365텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)