Files
warmbly/internal/pkg/argon2/hash.go
T
2026-01-17 14:11:14 +00:00

26 lines
575 B
Go

package argon2
import (
"crypto/rand"
"encoding/base64"
"fmt"
"golang.org/x/crypto/argon2"
)
func Hash(text string) (string, error) {
salt := make([]byte, saltLength)
_, err := rand.Read(salt)
if err != nil {
return "", err
}
hash := argon2.IDKey([]byte(text), salt, iterations, memory, parallelism, keyLength)
saltB64 := base64.RawStdEncoding.EncodeToString(salt)
hashB64 := base64.RawStdEncoding.EncodeToString(hash)
encoded := fmt.Sprintf("$argon2id$v=19$m=%d,t=%d,p=%d$%s$%s", memory, iterations, parallelism, saltB64, hashB64)
return encoded, nil
}