package crypto import ( "crypto/sha1" "fmt" "github.com/Luzifer/go-openssl/v3" "golang.org/x/crypto/bcrypt" ) // SHA1 回傳sha1加密 func SHA1(v string) string { h := sha1.New() h.Write([]byte(v)) bs := h.Sum(nil) return fmt.Sprintf("%x", bs) } func EncryptPassword(pwd string) (string, error) { hash, err := bcrypt.GenerateFromPassword([]byte(pwd), bcrypt.DefaultCost) if err != nil { return "", err } return string(hash), nil } func CheckPassword(pwd, hash string) error { return bcrypt.CompareHashAndPassword([]byte(hash), []byte(pwd)) } func DecryptAES(value, key string) ([]byte, error) { o := openssl.New() dec, err := o.DecryptBytes(key, []byte(value), openssl.DigestMD5Sum) if err != nil { return nil, err } return dec, nil } func EncryptAES(value, key string) ([]byte, error) { o := openssl.New() enc, err := o.EncryptBytes(key, []byte(value), openssl.DigestMD5Sum) if err != nil { return nil, err } return enc, nil }