// tmphash — 一次性:按服务端 argon2id 参数算密码 hash(临时,不提交)。 package main import ( "crypto/rand" "encoding/base64" "fmt" "os" "golang.org/x/crypto/argon2" ) func main() { pw := "wangjia812" if len(os.Args) > 1 { pw = os.Args[1] } salt := make([]byte, 16) if _, err := rand.Read(salt); err != nil { panic(err) } key := argon2.IDKey([]byte(pw), salt, uint32(1), uint32(65536), uint8(4), uint32(32)) fmt.Printf("$argon2id$v=%d$m=%d,t=%d,p=%d$%s$%s\n", argon2.Version, 65536, 1, 4, base64.RawStdEncoding.EncodeToString(salt), base64.RawStdEncoding.EncodeToString(key)) }