xxHash.NET
1.0.2
Install-Package xxHash.NET -Version 1.0.2
dotnet add package xxHash.NET --version 1.0.2
<PackageReference Include="xxHash.NET" Version="1.0.2" />
paket add xxHash.NET --version 1.0.2
#r "nuget: xxHash.NET, 1.0.2"
// Install xxHash.NET as a Cake Addin
#addin nuget:?package=xxHash.NET&version=1.0.2
// Install xxHash.NET as a Cake Tool
#tool nuget:?package=xxHash.NET&version=1.0.2
xxHash.NET
A .NET implementation of xxHash.
Synopsis
Demo
.NET Fiddle(https://dotnetfiddle.net/dbgN2y)
xxHash API approach
The following snippet demonstrates computing the XXH32
hash value of the input string "test".
byte[] input = Encoding.ASCII.GetBytes("test"); // the data to be hashed
uint result = XXHash.XXH32(input); // compute the XXH32 hash value. => '1042293711'
// NOTE:
// you can specified seed as the second parameter.
The following snippet computes the XXH32
hash value of the input file "test.doc".
Stream stream = File.OpenRead(@"C:\test.doc"); // the data to be hashed
XXHash.State32 state = XXHash.CreateState32(); // create and initialize a xxH states instance.
// NOTE:
// xxHash require a xxH state object for keeping
// data, seed, and vectors.
XXHash.UpdateState32(state, stream); // puts the file stream into specified xxH state.
uint result = XXHash.DigestState32(state); // compute the XXH32 hash value.
Supported xxHash APIs:
| original xxHash API name | XXH32 | XXH64 |
|--------------------------|--------------------------|--------------------------|
| XXH*nn*() | XXHash.XXH32() | XXHash.XXH64() |
| XXH*nn*_state_t | XXHash.State32 | XXHash.State64 |
| XXH*nn*_createState() | XXHash.CreateState32() | XXHash.CreateState64() |
| XXH*nn*_freeState() | *Not implemented* | *Not implemented* |
| XXH*nn*_reset() | XXHash.ResetState32() | XXHash.ResetState64() |
| XXH*nn*_update() | XXHash.UpdateState32() | XXHash.UpdateState64() |
| XXH*nn*_digest() | XXHash.DigestState32() | XXHash.DigestState64() |
HashAlgorithm approach
In addition, the assembly also provides XXHash32
and XXHash64
the two implementation classes of System.Security.Cryptography.HashAlgorithm.
The following snippets demonstrate computing the XXH32
hash value with HashAlgorithm approach.
byte[] input = Encoding.ASCII.GetBytes("test"); // the data to be hashed.
using (HashAlgorithm xxhash = XXHash32.Create())
{
byte[] result = xxhash.ComputeHash(input); // compute the hash.
}
-- or --
byte[] input = Encoding.ASCII.GetBytes("test"); // the data to be hashed
using (HashAlgorithm xxhash = XXHash32.Create())
{
xxhash.TransformFinalBlock(input, 0, input.Length);
byte[] result = xxhash.Hash; // retrieves the hash value.
}
NOTE: XXH64 is also supported: you can use xxHash64
class instead of xxHash32
.
Versioning
- v1.0.2 (equal to xxHash v0.6.2)
Copyright
Copyright (c) 2015 Wilhelm Liao. See LICENSE for further details.
Product | Versions |
---|---|
.NET Framework | net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on xxHash.NET:
Package | Downloads |
---|---|
LZ4.Frame
LZ4 Frame compress & decompress for .NET based on lz4net. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on xxHash.NET:
Repository | Stars |
---|---|
Bannerlord-Coop-Team/BannerlordCoop
|
Version | Downloads | Last updated |
---|---|---|
1.0.2 | 28,704 | 10/23/2017 |
v1.0.2 (equal to xxHash v0.6.2).