Files
2026-03-12 16:59:29 +02:00

33 lines
445 B
Go

package storage
import (
"crypto/sha256"
"encoding/hex"
"hash"
"io"
)
type Hasher struct {
hasher hash.Hash
}
func NewHasher() *Hasher {
return &Hasher{
hasher: sha256.New(),
}
}
func (ha *Hasher) Writer() io.Writer {
return ha.hasher
}
func (ha *Hasher) Hex() string {
data := ha.hasher.Sum(nil)
res := hex.EncodeToString(data)
return "sha256:" + res
}
func (ha *Hasher) Verify(hash string) bool {
return hash == ha.Hex()
}