{"id":16464487,"url":"https://github.com/deatil/go-hash","last_synced_at":"2025-03-21T06:31:58.686Z","repository":{"id":45171874,"uuid":"477228209","full_name":"deatil/go-hash","owner":"deatil","description":"go 常用摘要 Hash 算法库 / go hash functions (MD2/MD4/MD5/Hmac/Ripemd160/SHA1/SHA3/SHA256/SM3/kupyna/XXHash/SipHash/Blake3)","archived":false,"fork":false,"pushed_at":"2025-02-08T15:44:18.000Z","size":1385,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-17T22:08:30.610Z","etag":null,"topics":["go","hash","hmac","kupyna","md2","md4","md5","sha","sha1","sha256","sha3","xxh3"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/deatil/go-hash","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deatil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-03T03:28:28.000Z","updated_at":"2025-02-08T15:44:21.000Z","dependencies_parsed_at":"2023-01-31T19:31:24.016Z","dependency_job_id":"c4d9a230-c331-4d81-ae4a-a0b897869a94","html_url":"https://github.com/deatil/go-hash","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deatil%2Fgo-hash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deatil%2Fgo-hash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deatil%2Fgo-hash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deatil%2Fgo-hash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deatil","download_url":"https://codeload.github.com/deatil/go-hash/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244751285,"owners_count":20504238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","hash","hmac","kupyna","md2","md4","md5","sha","sha1","sha256","sha3","xxh3"],"created_at":"2024-10-11T11:28:00.726Z","updated_at":"2025-03-21T06:31:58.110Z","avatar_url":"https://github.com/deatil.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## go-hash\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://pkg.go.dev/github.com/deatil/go-hash\" \u003e\u003cimg src=\"https://pkg.go.dev/badge/deatil/go-hash.svg\" alt=\"Go Reference\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/deatil/go-hash\" \u003e\u003cimg src=\"https://codecov.io/gh/deatil/go-hash/graph/badge.svg?token=SS2Z1IY0XL\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://goreportcard.com/badge/github.com/deatil/go-hash\" /\u003e\n\u003c/p\u003e\n\n[中文](README_CN.md) | English\n\n\n### Desc\n\n*  A Go package that get data digest hash\n*  hashs has some MD2/MD4/MD5/Hmac/Ripemd160/SHA1/SHA3/SHA256/SM3/Xxhash/Gost etc\n\n\n### Download\n\n~~~go\ngo get -u github.com/deatil/go-hash\n~~~\n\n\n### Get Starting\n\n~~~go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/deatil/go-hash/hash\"\n)\n\nfunc main() {\n    var data string = \"...\"\n\n    // MD5 hash\n    var md5String string = hash.\n        FromString(data). // input data\n        MD5().            // hash type\n        ToHexString()     // output data\n\n    // NewMD5 hash\n    var md5String string = hash.\n        Hashing().\n        NewMD5().            // new hash type\n        Write([]byte(data)). // write data\n        Sum(nil).            // sum\n        ToHexString()        // output data\n\n    // =============\n\n    var pass []byte = []byte(\"...\")\n\n    // HmacSHA1 获取摘要\n    var hmacMD5String string = hash.\n        FromString(data).              // input data\n        Hmac(hash.HmacSHA1.New, pass). // hash type\n        ToHexString()                  // output data\n\n    // HmacSHA1 获取摘要\n    var hmacMD5String string = hash.\n        Hashing().                        // input data\n        NewHmac(hash.HmacSHA1.New, pass). // hash type\n        Write([]byte(data)).              // write data\n        Sum(nil).                         // sum\n        ToHexString()                     // output data\n}\n~~~\n\n\n### Input and Output\n\n*  Input:\n`FromBytes(data []byte)`, `FromString(data string)`, `FromBase64String(data string)`, `FromHexString(data string)`, `FromReader(reader io.Reader)`\n*  Output:\n`String() string`, `ToBytes() []byte`, `ToString() string`, `ToBase64String() string`, `ToHexString() string`, `ToReader() io.Reader`\n\n\n### Hash Types\n\n*  Types:\n`Adler32()`,\n`Blake2b_256()`, `Blake2b_384()`, `Blake2b_512()`, `Blake2s_256()`, `Blake2s_128()`,\n`CRC16_X25()`, `CRC16_Modbus()`,\n`CRC32_IEEE()`, `CRC32_Castagnoli()`, `CRC32_Koopman()`,\n`CRC64_ISO()`, `CRC64_ECMA()`,\n`Fnv32()`, `Fnv32a()`, `Fnv64()`, `Fnv64a()`, `Fnv128()`, `Fnv128a()`,\n`Hmac(h func() hash.Hash, secret []byte)`,\n`Keccak256()`, `Keccak512()`,\n`Maphash()`,\n`MD2()`, `MD4()`, `MD5()`, `MD5SHA1()`,\n`Murmur32()`, `Murmur32WithSeed(seed uint32)`,\n`Murmur64()`, `Murmur64WithSeed(seed uint32)`,\n`Murmur128()`, `Murmur128WithSeed(seed uint32)`,\n`Ripemd160()`,\n`SHA1()`, `SHA224()`, `SHA256()`, `SHA384()`, `SHA512()`, `SHA512_224()`, `SHA512_256()`,\n`SHA3_224()`, `SHA3_256()`, `SHA3_384()`, `SHA3_512()`,\n`Shake128()`, `Shake256()`,\n`SM3()`, `Xxhash()`, `Gost34112012256()`, `Gost34112012512()`, `HAS160()`, `LSH256()`, `LSH256_224()`, `LSH512()`, `LSH512_384()`, `LSH512_256()`, `LSH512_224()`, `Siphash64()`, `Siphash128()`, `Tiger()`, `Whirlpool()`\n\n*  New Types:\n`NewAdler32()`,\n`NewBlake2b_256(key []byte)`, `NewBlake2b_384(key []byte)`, `NewBlake2b_512(key []byte)`, `NewBlake2s_256(key []byte)`, `NewBlake2s_128(key []byte)`,\n`NewCRC32_IEEE()`, `NewCRC32_Castagnoli()`, `NewCRC32_Koopman()`,\n`NewCRC64_ISO()`, `NewCRC64_ECMA()`,\n`NewFnv32()`, `NewFnv32a()`, `NewFnv64()`, `NewFnv64a()`, `NewFnv128()`, `NewFnv128a()`,\n`NewHmac(h func() hash.Hash, secret []byte)`,\n`NewKeccak256()`, `NewKeccak512()`,\n`NewMaphash()`,\n`NewMD2()`, `NewMD4()`, `NewMD5()`,\n`NewMurmur32()`, `NewMurmur32WithSeed(seed uint32)`,\n`NewMurmur64()`, `NewMurmur64WithSeed(seed uint32)`,\n`NewMurmur128()`, `NewMurmur128WithSeed(seed uint32)`,\n`NewRipemd160()`,\n`NewSHA1()`, `NewSHA224()`, `NewSHA256()`, `NewSHA384()`, `NewSHA512()`, `NewSHA512_224()`, `NewSHA512_256()`,\n`NewSHA3_224()`, `NewSHA3_256()`, `NewSHA3_384()`, `NewSHA3_512()`,\n`NewSM3()`, `NewXxhash()`, `NewGost34112012256()`, `NewGost34112012512()`, `NewHAS160()`, `NewLSH256()`, `NewLSH256_224()`, `NewLSH512()`, `NewLSH512_384()`, `NewLSH512_256()`, `NewLSH512_224()`, `NewSiphash64()`, `NewSiphash128()`, `NewTiger()`, `NewWhirlpool()`\n\n*  Hmac hashs:\n`HmacADLER32`, `HmacMD2`, `HmacMD4`, `HmacMD5`, `HmacSHA1`, `HmacSHA224`, `HmacSHA256`, `HmacSHA384`, `HmacSHA512`, `HmacSHA512_224`, `HmacSHA512_256`, `HmacRIPEMD160`, `HmacSHA3_224`, `HmacSHA3_256`, `HmacSHA3_384`, `HmacSHA3_512`\n\n\n### LICENSE\n\n*  The library LICENSE is `Apache2`, using the library need keep the LICENSE.\n\n\n### Copyright\n\n*  Copyright deatil(https://github.com/deatil).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeatil%2Fgo-hash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeatil%2Fgo-hash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeatil%2Fgo-hash/lists"}