mirror of
https://github.com/lkmio/gb-cms.git
synced 2025-09-26 19:51:22 +08:00
48 lines
934 B
Go
48 lines
934 B
Go
package main
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/hex"
|
|
"math/rand"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
func GenerateTempPwd() string {
|
|
// 根据字母数字符号生成12位随机密码
|
|
// 字母数字符号
|
|
const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()"
|
|
// 随机数
|
|
rand.Seed(time.Now().UnixNano())
|
|
// 生成12位随机密码
|
|
b := make([]byte, 12)
|
|
for i := range b {
|
|
b[i] = letters[rand.Intn(len(letters))]
|
|
}
|
|
|
|
return string(b)
|
|
}
|
|
|
|
// ReadTempPwd 读取临时密码
|
|
func ReadTempPwd() (plaintext string, md5Hex string) {
|
|
// 从文件中读取密码
|
|
pwd, err := os.ReadFile("./data/pwd.txt")
|
|
if err != nil {
|
|
// 生成密码
|
|
plaintext = GenerateTempPwd()
|
|
|
|
// 计算md5
|
|
hash := md5.Sum([]byte(plaintext))
|
|
pwd = []byte(hex.EncodeToString(hash[:]))
|
|
|
|
// 写入文件
|
|
err = os.WriteFile("./data/pwd.txt", pwd, 0644)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
md5Hex = string(pwd)
|
|
return
|
|
}
|