base-golang/pkg/hash/hash_hashids.go

42 lines
677 B
Go
Raw Normal View History

2024-07-23 10:23:43 +08:00
package hash
import (
"github.com/speps/go-hashids"
)
func (h *hash) HashidsEncode(params []int) (string, error) {
hd := hashids.NewData()
hd.Salt = h.secret
hd.MinLength = h.length
hashID, err := hashids.NewWithData(hd)
if err != nil {
return "", err
}
hashStr, err := hashID.Encode(params)
if err != nil {
return "", err
}
return hashStr, nil
}
func (h *hash) HashidsDecode(hash string) ([]int, error) {
hd := hashids.NewData()
hd.Salt = h.secret
hd.MinLength = h.length
hashID, err := hashids.NewWithData(hd)
if err != nil {
return nil, err
}
ids, err := hashID.DecodeWithError(hash)
if err != nil {
return nil, err
}
return ids, nil
}