mirror of
https://github.com/TecharoHQ/anubis.git
synced 2025-08-03 09:48:08 -04:00

* perf(internal): Use FastHash for internal hashing docs: Add xxhash performance improvement to changelog entry feat(hash): Add fast non-cryptographic hash function Signed-off-by: Jason Cameron <git@jasoncameron.dev> * test(hash): add xxhash benchmarks and collision tests Signed-off-by: Jason Cameron <git@jasoncameron.dev> * Update metadata check-spelling run (pull_request) for json/hash Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com> on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev> --------- Signed-off-by: Jason Cameron <git@jasoncameron.dev> Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
26 lines
717 B
Go
26 lines
717 B
Go
package internal
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"strconv"
|
|
|
|
"github.com/cespare/xxhash/v2"
|
|
)
|
|
|
|
// SHA256sum computes a cryptographic hash. Still used for proof-of-work challenges
|
|
// where we need the security properties of a cryptographic hash function.
|
|
func SHA256sum(text string) string {
|
|
hash := sha256.New()
|
|
hash.Write([]byte(text))
|
|
return hex.EncodeToString(hash.Sum(nil))
|
|
}
|
|
|
|
// FastHash is a high-performance non-cryptographic hash function suitable for
|
|
// internal caching, policy rule identification, and other performance-critical
|
|
// use cases where cryptographic security is not required.
|
|
func FastHash(text string) string {
|
|
h := xxhash.Sum64String(text)
|
|
return strconv.FormatUint(h, 16)
|
|
}
|