]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl/crypto: Add FNV32a
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 26 Apr 2022 08:35:45 +0000 (10:35 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 27 Apr 2022 21:53:56 +0000 (23:53 +0200)
Main motivation to get a integer from a string.

tpl/crypto/crypto.go

index e6e67e64b12fb0c5078bd9e3cd7dfc97d5610655..42b420d59362e985b5d86acc59224a3f84e2ad08 100644 (file)
@@ -23,6 +23,7 @@ import (
        "encoding/hex"
        "fmt"
        "hash"
+       "hash/fnv"
 
        "github.com/spf13/cast"
 )
@@ -68,6 +69,17 @@ func (ns *Namespace) SHA256(in any) (string, error) {
        return hex.EncodeToString(hash[:]), nil
 }
 
+// FNV32a hashes using fnv32a algorithm
+func (ns *Namespace) FNV32a(in any) (int, error) {
+       conv, err := cast.ToStringE(in)
+       if err != nil {
+               return 0, err
+       }
+       algorithm := fnv.New32a()
+       algorithm.Write([]byte(conv))
+       return int(algorithm.Sum32()), nil
+}
+
 // HMAC returns a cryptographic hash that uses a key to sign a message.
 func (ns *Namespace) HMAC(h any, k any, m any, e ...any) (string, error) {
        ha, err := cast.ToStringE(h)