Effortless.Net.Core.Encryption
1.3.0
See the version list below for details.
dotnet add package Effortless.Net.Core.Encryption --version 1.3.0
NuGet\Install-Package Effortless.Net.Core.Encryption -Version 1.3.0
<PackageReference Include="Effortless.Net.Core.Encryption" Version="1.3.0" />
paket add Effortless.Net.Core.Encryption --version 1.3.0
#r "nuget: Effortless.Net.Core.Encryption, 1.3.0"
// Install Effortless.Net.Core.Encryption as a Cake Addin #addin nuget:?package=Effortless.Net.Core.Encryption&version=1.3.0 // Install Effortless.Net.Core.Encryption as a Cake Tool #tool nuget:?package=Effortless.Net.Core.Encryption&version=1.3.0
Effortless .Net Encryption Core
Project Description
.Net Core version of https://github.com/sjh37/Effortless-.Net-Encryption
Effortless .Net Core Encryption is a library that is written in C#, .Net Core and provides:
- Rijndael encryption/decryption.
- Hashing and Digest creation/validation.
- Password and salt creation.
Thanks to ###Simon Hughes
Before You Begin
Supported .Net Core Version : 5.0
According to .Net Core source code, only 128 Block Size is supported in Rijndael:
Source 2 : dotnet github : RijndaelImplementation.cs
Nuget
https://www.nuget.org/packages/Effortless.Net.Core.Encryption/
To install Effortless.Net.Core.Encryption, run the following command in the Package Manager Console
PM> dotnet add package Effortless.Net.Core.Encryption
Overview
The project is split into four main areas
- Strings – Encryption/Decryption/Password and Salt generation
- Hash – Creation and verification of hashes using MD5, SHA1, SHA256, SHA384, SHA512.
- Digest – Creation and verification of digests (data + hash). Plus two handy ToString() and CreateFromString() functions which come in handy if you want to store data in a Cookie.
- Bytes – The core of the library. This uses the Rijndael algorithm and works at the byte[] level for most functions.
Examples
// Creating passwords & salts
string password = Strings.CreatePassword(15, true);
string salt = Strings.CreateSalt(20);
// Encrypting/decrypting strings
byte[] key = Bytes.GenerateKey();
byte[] iv = Bytes.GenerateIV();
string encrypted = Strings.Encrypt("Secret", key, iv);
string decrypted = Strings.Decrypt(encrypted, key, iv);
Assert.AreEqual("Secret", decrypted);
// Hashes
string hash = Hash.Create(HashType.SHA512, "Hello", string.Empty, false);
// Digests
var d1 = Digest.Create(HashType.MD5, "Hello", string.Empty);
string cookieString = d1.ToString();
var d2 = Digest.CreateFromString(cookieString, string.Empty);
Assert.AreEqual(d1.Data, d2.Data);
Assert.AreEqual(d1.Hash, d2.Hash);
// Bytes
byte[] key = Bytes.GenerateKey();
byte[] iv = Bytes.GenerateIV();
var data = new byte[1024];
new RNGCryptoServiceProvider().GetBytes(data); // Random data
byte[] encrypted = Bytes.Encrypt(data, key, iv);
byte[] decrypted = Bytes.Decrypt(encrypted, key, iv);
Assert.AreEqual(data, decrypted);
// Digital Signatures
var hash = Hash.Create(HashType.SHA256, "Hello", string.Empty)
var ds = new DigitalSignature();
ds.AssignNewKey();
var signature = ds.SignData(hash);
var result = ds.VerifySignature(hash, signature);
Assert.IsTrue(result);
// Diffie Hellman
var alice = new DiffieHellman();
var bob = new DiffieHellman();
// Bob uses Alice's public key to encrypt his message.
var secretMessage = bob.Encrypt(alice, "Hello");
// Alice uses Bob's public key and IV to decrypt the secret message.
var decryptedMessage = alice.Decrypt(bob, secretMessage);
Assert.AreEqual("Hello", decryptedMessage);
Links
Github : https://github.com/keerthirajap/Effortless.Net.Core.Encryption/
Github Pages : https://keerthirajap.github.io/Effortless.Net.Core.Encryption/
Nuget : https://www.nuget.org/packages/Effortless.Net.Core.Encryption/
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. |
-
net5.0
- System.Security.Cryptography.Cng (>= 5.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Effortless.Net.Core.Encryption:
Package | Downloads |
---|---|
Our.Community.Configuration
Store configuration data in the Umbraco database |
|
Our.Community.Configuration.OptionsProvider
IOptions provider for Our.Community.Configuration |
GitHub repositories
This package is not used by any popular GitHub repositories.