Skip to content

Comprehensive security utilities for .NET applications, featuring AES encryption (Cipher) and cryptographic hashing (Hasher) for robust protection of text and files.

License

Notifications You must be signed in to change notification settings

Tolitech/Tolitech.Security.Cryptography

Repository files navigation

Tolitech.Security.Cryptography

Overview

Tolitech.Security.Cryptography is a comprehensive library for .NET applications, providing robust and easy-to-use cryptographic utilities. It focuses on two main areas: AES-GCM encryption (Cipher) and cryptographic hashing (Hasher), enabling secure data protection for both text and files.


Features

🔒 Cipher (AES-GCM Encryption)

  • Dynamic Key and Nonce Generation: Each encryption operation generates a unique AES key, nonce, and authentication tag.
  • Text and File Encryption: Encrypts and decrypts both strings and byte arrays (files) using AES-GCM for confidentiality and integrity.
  • Authenticated Encryption: Ensures both data privacy and tamper detection (integrity) with a single API.

🛡️ Hasher (Cryptographic Hashing)

  • Salted Hash Generation: Uses SHA-512 with a random salt for strong, unique hashes.
  • Password Hashing: Implements PBKDF2 with SHA-512 and 100,000 iterations for secure password storage.
  • Simple API: Easy-to-use methods for hashing and verifying data.

Installation

Add the NuGet package to your project:

dotnet add package Tolitech.Security.Cryptography

Usage

Cipher Example (Encrypt/Decrypt Text with AES-GCM)

string plainText = "Hello, world!";
string encryptedText = Cipher.Encrypt(plainText, out string key, out string nonce, out string tag);
string decryptedText = Cipher.Decrypt(encryptedText, key, nonce, tag);
Console.WriteLine($"Decrypted text: {decryptedText}");

Cipher Example (Encrypt/Decrypt File with AES-GCM)

byte[] fileBytes = File.ReadAllBytes("file.txt");
byte[] encrypted = Cipher.Encrypt(fileBytes, out string key, out string nonce, out string tag);
byte[] decrypted = Cipher.Decrypt(encrypted, key, nonce, tag);
File.WriteAllBytes("file.decrypted.txt", decrypted);

Hasher Example (Hash and Verify)

string password = "securePassword123";
string hash = Hasher.Hash(password, out string salt);
bool isValid = Hasher.Verify(password, hash, salt);
Console.WriteLine($"Password valid: {isValid}");

Project Structure

  • Cipher: Static class for AES-GCM encryption/decryption of text and files.
  • Hasher: Static class for hashing and verifying data using SHA-512 and PBKDF2.
  • Unit tests included for both Cipher and Hasher classes.

Technologies

  • AES-GCM (Advanced Encryption Standard with Galois/Counter Mode)
  • PBKDF2 with SHA-512

About

Comprehensive security utilities for .NET applications, featuring AES encryption (Cipher) and cryptographic hashing (Hasher) for robust protection of text and files.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages