Can I concatenate multiple non-crypto hash functions to reduce collision?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • xxh3

    XXH3 algorithm in Go

  • xxhash3 can supply hashes up to 128 bits and supports seeds and has pretty good speed on short inputs.

  • highwayhash

    Native Go version of HighwayHash with optimized assembly implementations on Intel and ARM. Able to process over 10 GB/sec on a single core on Intel CPUs - https://en.wikipedia.org/wiki/HighwayHash (by minio)

  • highwayhash (alt) provides 256 bits. Fast mainly for larger inputs and supports seeds.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • go-highway

    Go implementation of Google's HighwayHash

  • highwayhash (alt) provides 256 bits. Fast mainly for larger inputs and supports seeds.

  • sha256-simd

    Accelerate SHA256 computations in pure Go using AVX512, SHA Extensions for x86 and ARM64 for ARM. On AVX512 it provides an up to 8x improvement (over 3 GB/s per core). SHA Extensions give a performance boost of close to 4x over native.

  • SHA256 is high quality but typically a bit slower. Next Go version will have faster SHA256 on some amd64 CPUs - until then you can try sha256-simd which offers the same.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts