CaFc_Versace

PassUpgrade

Sep 26th, 2018
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.92 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "crypto/md5"
  5.     "encoding/hex"
  6.     "fmt"
  7.     "golang.org/x/crypto/bcrypt"
  8. )
  9.  
  10. func main() {
  11.     // var email = "[email protected]"
  12.     var plainPass = "pL4!nt-TeXT_P@sSw0Rd"
  13.     var md5FromDb = "bc5bda0c7c7e15af25d3cd1bcccdebe8" // anggep aja ini password lama customer md5 yang udah ada di DB
  14.     // var md5FromDb = "69696969696969696969696969696969"
  15.     md5Pass := GetMD5Hash(plainPass)
  16.  
  17.     fmt.Println("Plaintext pass :", plainPass)
  18.     fmt.Println("MD5 from old DB:", md5FromDb)
  19.     fmt.Println("MD5 password   : " + md5Pass + " (for matching purposes)\n")
  20.  
  21.     if md5Pass == md5FromDb {
  22.         // Jika masuk kondisi disini,
  23.         // berarti plainteks yang dimasukkan
  24.         // dan digenerate ke md5 sesuai
  25.         // dengan yang ada di DB
  26.         fmt.Println("OK! Password matches the hash in the DB")
  27.         fmt.Println("---------------------------------------")
  28.  
  29.         bcrypt, _ := GenPassword(plainPass)
  30.         fmt.Println("New password (bcrypt): ", bcrypt)
  31.  
  32.         // Otomatis kita harus update password hash MD5 yang ada di DB ke bcrypt
  33.         // --
  34.         // Project: brodo-api
  35.         // Latest commit 4dd3cf67ad95b53765628d469f0c11d33883240b
  36.         // --
  37.         // Kondisi ini ditambahkan sebelum /controllers/users.go:156
  38.         // jika 'md5Pass == md5FromDb', maka menjalankan data.Db().ForceUpdate()
  39.         // sama seperti /controllers/users.go:400
  40.         //
  41.         // Lebih cakep lagi kalo kondisi ini hanya berjalan
  42.         // jika user registered-nya di bawah bulan September taun 2018 (misalnya)
  43.     } else {
  44.         fmt.Println("Kata sandi yang Bro/Sis masukkan salah!")
  45.     }
  46. }
  47.  
  48. func GetMD5Hash(text string) string {
  49.     hash := md5.New()
  50.     hash.Write([]byte(text))
  51.     return hex.EncodeToString(hash.Sum(nil))
  52. }
  53.  
  54. func GenPassword(password string) (string, error) {
  55.     bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
  56.     return string(bytes), err
  57. }
  58.  
  59. func PasswordCheck(password, hash string) bool {
  60.     err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
  61.     return err == nil
  62. }
Advertisement
Add Comment
Please, Sign In to add comment