Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "crypto/md5"
- "encoding/hex"
- "fmt"
- "golang.org/x/crypto/bcrypt"
- )
- func main() {
- // var email = "[email protected]"
- var plainPass = "pL4!nt-TeXT_P@sSw0Rd"
- var md5FromDb = "bc5bda0c7c7e15af25d3cd1bcccdebe8" // anggep aja ini password lama customer md5 yang udah ada di DB
- // var md5FromDb = "69696969696969696969696969696969"
- md5Pass := GetMD5Hash(plainPass)
- fmt.Println("Plaintext pass :", plainPass)
- fmt.Println("MD5 from old DB:", md5FromDb)
- fmt.Println("MD5 password : " + md5Pass + " (for matching purposes)\n")
- if md5Pass == md5FromDb {
- // Jika masuk kondisi disini,
- // berarti plainteks yang dimasukkan
- // dan digenerate ke md5 sesuai
- // dengan yang ada di DB
- fmt.Println("OK! Password matches the hash in the DB")
- fmt.Println("---------------------------------------")
- bcrypt, _ := GenPassword(plainPass)
- fmt.Println("New password (bcrypt): ", bcrypt)
- // Otomatis kita harus update password hash MD5 yang ada di DB ke bcrypt
- // --
- // Project: brodo-api
- // Latest commit 4dd3cf67ad95b53765628d469f0c11d33883240b
- // --
- // Kondisi ini ditambahkan sebelum /controllers/users.go:156
- // jika 'md5Pass == md5FromDb', maka menjalankan data.Db().ForceUpdate()
- // sama seperti /controllers/users.go:400
- //
- // Lebih cakep lagi kalo kondisi ini hanya berjalan
- // jika user registered-nya di bawah bulan September taun 2018 (misalnya)
- } else {
- fmt.Println("Kata sandi yang Bro/Sis masukkan salah!")
- }
- }
- func GetMD5Hash(text string) string {
- hash := md5.New()
- hash.Write([]byte(text))
- return hex.EncodeToString(hash.Sum(nil))
- }
- func GenPassword(password string) (string, error) {
- bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
- return string(bytes), err
- }
- func PasswordCheck(password, hash string) bool {
- err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
- return err == nil
- }
Advertisement
Add Comment
Please, Sign In to add comment