Hashing
Overview
This page contains recommendations for choosing a hashing algorithm.
General
If you need to hash passwords see the the Authentication: Password Storage page.
For other data, use a hashing algorithm from the
SHA-2orSHA-3family.Do not use vulnerable hashing algorithms from the list below. You can find examples of collision attacks at https://github.com/corkami/collisions.
Hashing implementation
Use the implementation of hash algorithms from the crypto package, such as crypto/sha256 or crypto/sha512. You can find the whole list at https://pkg.go.dev/crypto#Hash
Use the java.security.MessageDigest class for hashing implementation. MessageDigest is not thread-safe. Use a new instance for every thread.
Use the crypto package for hashing implementation. The list of supported algorithms is dependent on the available algorithms supported by the version of OpenSSL on the platform. Use openssl list -digest-algorithms to display the available digest algorithms.
Last updated