### 项目介绍
* go-hash 一个 go 常用摘要算法库,收集了开发常用的摘要算法。如果对你有帮助请帮忙点个星星支持下
* 算法包括: (MD2/MD4/MD5/Hmac/Ripemd160/SHA1/SHA3/SHA256/SM3)
* 项目地址: https://github.com/deatil/go-hash
### 下载安装
~~~
go get -u github.com/deatil/go-hash
~~~
### 使用
~~~go
package main
import (
"fmt"
"github.com/deatil/go-hash/hash"
)
func main() {
// MD5 获取摘要
md5Data := hash.
FromString("useData"). // 输入数据, 需要获取摘要的数据
MD5(). // 摘要方式
ToHexString() // 输出数据, 返回数据类型
fmt.Println("MD5 结果:", md5Data)
// NewMD5 获取摘要
md5Data2 := hash.
Hashing().
NewMD5(). // 摘要方式
Write([]byte("useData")). // 需要获取摘要的数据
Sum(nil). // 计算
ToHexString() // 输出数据, 返回数据类型
fmt.Println("MD5 结果2:", md5Data2)
}
~~~
### 输入输出数据
* 输入数据:
`FromBytes(data []byte)`, `FromString(data string)`, `FromBase64String(data string)`, `FromHexString(data string)`, `FromReader(reader io.Reader)`
* 输出数据:
`String() string`, `ToBytes() []byte`, `ToString() string`, `ToBase64String() string`, `ToHexString() string`, `ToReader() io.Reader`
### 常用算法
* 直接使用:
`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(f 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()`
有疑问加站长微信联系(非本文作者)