EasyTotp 1.2.1
dotnet add package EasyTotp --version 1.2.1
NuGet\Install-Package EasyTotp -Version 1.2.1
<PackageReference Include="EasyTotp" Version="1.2.1" />
paket add EasyTotp --version 1.2.1
#r "nuget: EasyTotp, 1.2.1"
// Install EasyTotp as a Cake Addin
#addin nuget:?package=EasyTotp&version=1.2.1
// Install EasyTotp as a Cake Tool
#tool nuget:?package=EasyTotp&version=1.2.1
Easy-TOTP, A Time-Based authorization token generator library for C#
One easy and secure way to communicate between your web application and your Restful backend services in a micro-service driven architecture is to use a dynamic API-KEY via Time-Based One Time algorithm instead of a constant API Key or JSON Token. each time that the web application sends a request to any of the Restful backend servers, it will include a new API Key which has been generated by the Easy TOTP library. On the service side, by using the same Easy TOTP library the same API-Key can be generated to be compared with the generated API_Key by the web application in order to authenticate the request.
Easy-TOTP 's Benefits
- Easy to implement and use
- Lightweight
- Secure
- Flexible
The API-Keys generated by Easy TOTP are valid in short time span which will be given to the library on the initialization as "Time Step".
Prerequisite
Resources
Usage
string Key = "12345678901234567890123456789012"; //32 chars
var totp = new Totp()
.Secret(Key)
.Length(8)
.ValidFor(TimeSpan.FromSeconds(5));
var output = totp.Compute();
//output = 12345678
Usage With Encryption
string Key = "12345678901234567890123456789012"; //32 chars
string _aesKey = "12345678901234567890123456789012"; //32 chars
string _aesIv = "1234567890123456"; //16 chars
var totp = new Totp()
.Secret(Key)
.Length(8)
.ValidFor(TimeSpan.FromSeconds(5))
.UseDefaultEncryptor(_aesKey,_aesIv);
var output = Convert.ToBase64String(totp.ComputeEncrypted());
//output = DV/tzyq8YG+BRZGSpOVNZQ==
Happy coding 😃
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.