gohorsejobs/backend/cmd/fixhash/main.go
2026-02-12 20:13:46 -03:00

51 lines
1.3 KiB
Go

package main
import (
"database/sql"
"fmt"
"log"
"os"
_ "github.com/lib/pq"
"golang.org/x/crypto/bcrypt"
)
func main() {
dbURL := os.Getenv("DATABASE_URL")
if dbURL == "" {
log.Fatal("DATABASE_URL environment variable not set")
}
db, err := sql.Open("postgres", dbURL)
if err != nil {
fmt.Println("❌ Connection error:", err)
return
}
defer db.Close()
// USE THE PEPPER FROM THE DEPLOYED BACKEND .env
password := "Admin@2025!"
pepper := "some-random-string-for-password-hashing" // FROM DEPLOYED .env
passwordWithPepper := password + pepper
newHash, err := bcrypt.GenerateFromPassword([]byte(passwordWithPepper), bcrypt.DefaultCost)
if err != nil {
fmt.Println("❌ Hash generation error:", err)
return
}
fmt.Println("🔐 Generated new hash with CORRECT pepper:")
fmt.Println(" Password:", password)
fmt.Println(" Pepper:", pepper)
fmt.Println(" Hash:", string(newHash))
result, err := db.Exec("UPDATE users SET password_hash = $1, status = 'active' WHERE identifier = 'superadmin'", string(newHash))
if err != nil {
fmt.Println("❌ Update error:", err)
return
}
rows, _ := result.RowsAffected()
fmt.Printf("\n✅ SuperAdmin updated! Rows affected: %d\n", rows)
fmt.Println("\n🔄 Tente logar novamente com superadmin / Admin@2025!")
}