LicenseManger/internal/utils/captcha.go

32 lines
824 B
Go
Raw Permalink Normal View History

2024-11-14 14:55:43 +00:00
package utils
import (
"crypto/rand"
"fmt"
)
// GenerateCaptcha 生成6位数字验证码
func GenerateCaptcha() (string, error) {
// 生成6位随机数字
b := make([]byte, 3)
if _, err := rand.Read(b); err != nil {
return "", err
}
// 将随机字节转换为6位数字
num := int(b[0])<<16 | int(b[1])<<8 | int(b[2])
return fmt.Sprintf("%06d", num%1000000), nil
}
// GenerateEmailCaptchaContent 生成验证码邮件内容
func GenerateEmailCaptchaContent(code, username, action string) string {
return fmt.Sprintf(`
<h3></h3>
<p>%s</p>
<p>%s</p>
<h2 style="color: #1890ff;">%s</h2>
<p>5</p>
<p></p>
`, username, action, code)
}