中文 | English
- A Go package that get data digest hash
- go-hash have digest MD2/MD4/MD5/Hmac/Ripemd160/SHA1/SHA3/SHA256/SM3/Xxhash/Gost etc
go get -u github.com/deatil/go-hashpackage main
import (
"fmt"
"github.com/deatil/go-hash/hash"
)
func main() {
var data string = "..."
// MD5 hash
var md5String string = hash.
FromString(data). // input data
MD5(). // hash type
ToHexString() // output data
// NewMD5 hash
var md5String string = hash.
Hashing().
NewMD5(). // new hash type
Write([]byte(data)). // write data
Sum(nil). // sum
ToHexString() // output data
// =============
var pass []byte = []byte("...")
// HmacSHA1
var hmacSHA1String string = hash.
FromString(data). // input data
Hmac(hash.HmacSHA1.New, pass). // hash type
ToHexString() // output data
// HmacSHA1
var hmacSHA1String string = hash.
Hashing(). // input data
NewHmac(hash.HmacSHA1.New, pass). // hash type
Write([]byte(data)). // write data
Sum(nil). // sum
ToHexString() // output data
}- Input:
FromBytes(data []byte),FromString(data string),FromBase64String(data string),FromHexString(data string),FromReader(reader io.Reader) - Output:
String() string,ToBytes() []byte,ToString() string,ToBase64String() string,ToHexString() string,ToReader() io.Reader
-
Types:
Adler32(),Blake2b_256(),Blake2b_384(),Blake2b_512(),Blake2s_256(),Blake2s_128(),CRC16_X25(),CRC16_Modbus(),CRC32_IEEE(),CRC32_Castagnoli(),CRC32_Koopman(),CRC64_ISO(),CRC64_ECMA(),Fnv32(),Fnv32a(),Fnv64(),Fnv64a(),Fnv128(),Fnv128a(),Hmac(h func() hash.Hash, secret []byte),Keccak256(),Keccak512(),Maphash(),MD2(),MD4(),MD5(),MD5SHA1(),Murmur32(),Murmur32WithSeed(seed uint32),Murmur64(),Murmur64WithSeed(seed uint32),Murmur128(),Murmur128WithSeed(seed uint32),Ripemd160(),SHA1(),SHA224(),SHA256(),SHA384(),SHA512(),SHA512_224(),SHA512_256(),SHA3_224(),SHA3_256(),SHA3_384(),SHA3_512(),Shake128(),Shake256(),SM3(),Xxhash(),Gost34112012256(),Gost34112012512(),HAS160(),LSH256(),LSH256_224(),LSH512(),LSH512_384(),LSH512_256(),LSH512_224(),Siphash64(),Siphash128(),Tiger(),Whirlpool() -
New Types:
NewAdler32(),NewBlake2b_256(key []byte),NewBlake2b_384(key []byte),NewBlake2b_512(key []byte),NewBlake2s_256(key []byte),NewBlake2s_128(key []byte),NewCRC32_IEEE(),NewCRC32_Castagnoli(),NewCRC32_Koopman(),NewCRC64_ISO(),NewCRC64_ECMA(),NewFnv32(),NewFnv32a(),NewFnv64(),NewFnv64a(),NewFnv128(),NewFnv128a(),NewHmac(h func() hash.Hash, secret []byte),NewKeccak256(),NewKeccak512(),NewMaphash(),NewMD2(),NewMD4(),NewMD5(),NewMurmur32(),NewMurmur32WithSeed(seed uint32),NewMurmur64(),NewMurmur64WithSeed(seed uint32),NewMurmur128(),NewMurmur128WithSeed(seed uint32),NewRipemd160(),NewSHA1(),NewSHA224(),NewSHA256(),NewSHA384(),NewSHA512(),NewSHA512_224(),NewSHA512_256(),NewSHA3_224(),NewSHA3_256(),NewSHA3_384(),NewSHA3_512(),NewSM3(),NewXxhash(),NewGost34112012256(),NewGost34112012512(),NewHAS160(),NewLSH256(),NewLSH256_224(),NewLSH512(),NewLSH512_384(),NewLSH512_256(),NewLSH512_224(),NewSiphash64(),NewSiphash128(),NewTiger(),NewWhirlpool() -
Hmac hashs:
HmacADLER32,HmacMD2,HmacMD4,HmacMD5,HmacSHA1,HmacSHA224,HmacSHA256,HmacSHA384,HmacSHA512,HmacSHA512_224,HmacSHA512_256,HmacRIPEMD160,HmacSHA3_224,HmacSHA3_256,HmacSHA3_384,HmacSHA3_512
- The library LICENSE is
Apache2, using the library need keep the LICENSE.
- Copyright deatil(https://github.com/deatil).