mc-client-updater-server/pkg/password/password.go

30 lines
525 B
Go
Raw Permalink Normal View History

2022-10-04 00:36:01 +08:00
package password
import (
"mc-client-updater-server/pkg/conf"
"mc-client-updater-server/pkg/log"
"sync"
)
var (
once sync.Once
encoder Encoder
)
func Password() Encoder {
once.Do(func() {
switch conf.Conf.Security.PasswordEncoder {
case "argon2id":
encoder = &Argon2id{}
default:
log.Logger.Fatal("非法的PasswordEncoder类型", conf.Conf.Security.PasswordEncoder)
}
})
return encoder
}
type Encoder interface {
Create(string) (string, error)
Verify(password, hash string) (bool, error)
}