48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
|
|
package main
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"crypto/sha256"
|
|||
|
|
"encoding/hex"
|
|||
|
|
"fmt"
|
|||
|
|
"os"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// HashPassword 密码加密(使用SHA256,与Python版本保持一致)
|
|||
|
|
func HashPassword(password string) string {
|
|||
|
|
hash := sha256.Sum256([]byte(password))
|
|||
|
|
return hex.EncodeToString(hash[:])
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func main() {
|
|||
|
|
// 如果有命令行参数,加密该密码
|
|||
|
|
if len(os.Args) > 1 {
|
|||
|
|
password := os.Args[1]
|
|||
|
|
hashed := HashPassword(password)
|
|||
|
|
fmt.Printf("原始密码: %s\n", password)
|
|||
|
|
fmt.Printf("加密后: %s\n", hashed)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 为测试数据生成加密密码
|
|||
|
|
passwords := []string{
|
|||
|
|
"admin123", // 企业管理员密码
|
|||
|
|
"user123", // 普通用户密码
|
|||
|
|
"123456", // 默认密码
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
fmt.Println("生成加密密码(SHA256):")
|
|||
|
|
fmt.Println("=====================================")
|
|||
|
|
|
|||
|
|
for i, pwd := range passwords {
|
|||
|
|
hashed := HashPassword(pwd)
|
|||
|
|
fmt.Printf("%d. 原始密码: %s\n", i+1, pwd)
|
|||
|
|
fmt.Printf(" 加密后: %s\n\n", hashed)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
fmt.Println("=====================================")
|
|||
|
|
fmt.Println("使用说明:")
|
|||
|
|
fmt.Println("方式1:直接运行此程序,查看常用密码的加密结果")
|
|||
|
|
fmt.Println("方式2:传入密码参数,如: go run generate_password.go mypassword")
|
|||
|
|
fmt.Println("注意:请将加密后的密码保存到数据库的 password 字段")
|
|||
|
|
}
|