Files
2026-06-22 18:47:52 +08:00

49 lines
1.1 KiB
Go

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)
}