laget.HashId
1.4.25
Prefix Reserved
dotnet add package laget.HashId --version 1.4.25
NuGet\Install-Package laget.HashId -Version 1.4.25
<PackageReference Include="laget.HashId" Version="1.4.25" />
paket add laget.HashId --version 1.4.25
#r "nuget: laget.HashId, 1.4.25"
// Install laget.HashId as a Cake Addin
#addin nuget:?package=laget.HashId&version=1.4.25
// Install laget.HashId as a Cake Tool
#tool nuget:?package=laget.HashId&version=1.4.25
laget.HashIds
Note Hashids have been upgraded & rebranded as Sqids and we've created a separate package for this here!. This means that this package will no longer be maintained apart form security issues.
Simple library for using hashed ids in DTOs
Based on https://hashids.org/
Configuration
This example is shown using Autofac since this is the go-to IoC for us.
await Host.CreateDefaultBuilder()
.ConfigureContainer<ContainerBuilder>((context, builder) =>
{
builder.RegisterHashId();
})
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.Build()
.RunAsync();
Salts for the hashes will be loaded from the config file expecting the following format
{
/* ..., */
"HashIds": {
"DefaultHashVersion": "xx",
"SaltVersions": {
"xx": "yyyy..."
}
}
}
Where 'xx' is a 2 character version code and 'yyyy' is the salt (of unlimited size) used by that version
Usage
Basic usage
var hashId = HashId.FromLong(42);
var longId = hash.ToLong();
Usage in a class
public class Dto
{
public HashId Id { get; set; }
}
// Serializes to { Id: "somehash" }
Example when used with the laget.Mapper nuget package
public class ModelMapper : IMapper
{
[MapperMethod]
public Dto ModelToDto(Model model) => new() { Id = model.Id.ToHashId() };
[MapperMethod]
public Model DtoToModel(Dto dto) => new() { Id = dto.Id.ToLong() };
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Autofac.Extensions.DependencyInjection (>= 9.0.0)
- Hashids.net (>= 1.7.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Newtonsoft.Json (>= 13.0.3)
-
.NETStandard 2.1
- Autofac.Extensions.DependencyInjection (>= 9.0.0)
- Hashids.net (>= 1.7.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- Autofac.Extensions.DependencyInjection (>= 9.0.0)
- Hashids.net (>= 1.7.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Newtonsoft.Json (>= 13.0.3)
-
net8.0
- Autofac.Extensions.DependencyInjection (>= 9.0.0)
- Hashids.net (>= 1.7.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.4.25 | 138 | 1/20/2024 | |
1.4.23 | 205 | 11/22/2023 | |
1.4.22 | 174 | 7/3/2023 | |
1.4.20 | 149 | 5/20/2023 | |
1.4.19 | 146 | 5/20/2023 | |
1.4.16 | 133 | 5/20/2023 | |
1.3.14 | 144 | 5/20/2023 | |
1.3.13 | 136 | 5/20/2023 | |
1.3.12 | 139 | 5/20/2023 | |
1.3.11 | 141 | 5/19/2023 | |
1.3.9 | 132 | 5/19/2023 | |
1.3.8 | 133 | 5/19/2023 | |
1.2.6 | 135 | 5/19/2023 | |
1.2.5 | 148 | 5/15/2023 | |
1.2.4 | 223 | 3/14/2023 | |
1.2.3 | 223 | 3/10/2023 |