package main import ( "database/sql" "fmt" "log" _ "github.com/lib/pq" "golang.org/x/crypto/bcrypt" ) func main() { // 连接数据库 db, err := sql.Open("postgres", "postgres://freedak:@localhost:5432/govai_portal?sslmode=disable") if err != nil { log.Fatal("连接数据库失败:", err) } defer db.Close() // 生成密码哈希 password := "admin123" hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) if err != nil { log.Fatal("生成密码哈希失败:", err) } // 更新密码 result, err := db.Exec(` UPDATE users SET password_hash = $1, updated_at = NOW() WHERE email = $2 `, string(hash), "admin@govai.gov.cn") if err != nil { log.Fatal("更新密码失败:", err) } rows, _ := result.RowsAffected() fmt.Printf("✅ 已重置 admin@govai.gov.cn 的密码为: %s (影响%d行)\n", password, rows) // 验证 var email, role string err = db.QueryRow("SELECT email, role FROM users WHERE email = $1", "admin@govai.gov.cn").Scan(&email, &role) if err != nil { log.Fatal("查询用户失败:", err) } fmt.Printf("用户: %s, 角色: %s\n", email, role) }