Quantum.Security 1.0.0

dotnet add package Quantum.Security --version 1.0.0
                    
NuGet\Install-Package Quantum.Security -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Quantum.Security" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Quantum.Security" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Quantum.Security" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Quantum.Security --version 1.0.0
                    
#r "nuget: Quantum.Security, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Quantum.Security@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Quantum.Security&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Quantum.Security&version=1.0.0
                    
Install as a Cake Tool

Quantum.Security

NuGet Version License: MIT

Quantum.Security es una librería de seguridad fundamental para .NET, diseñada para proporcionar un conjunto de herramientas criptográficas robustas, modernas y fáciles de usar. Centraliza la lógica de cifrado, hashing y otras operaciones de seguridad para ser usada a través de tus proyectos.

✨ Características Principales (v1.0.0)

  • Cifrado Simétrico Moderno (AesGcmEncryption): Cifrado autenticado (AEAD) con AES-256 en modo GCM para garantizar confidencialidad e integridad. Incluye soporte nativo para fechas de expiración.
  • Hashing de Contraseñas Seguro (PasswordHasher): Implementación de PBKDF2 con SHA-256 y un alto número de iteraciones para almacenar contraseñas de forma segura, incluyendo protección contra "timing attacks".
  • Ofuscación de IDs (GuidObfuscator): Utilidad para enmascarar IDs numéricos secuenciales (ej. 123) en un formato no predecible similar a un GUID (ej. f47ac10b-...).
  • Firmas Digitales (RsaManager): Utilidades para generar pares de claves RSA, firmar datos para garantizar su autenticidad e integridad, y verificar firmas.
  • Utilidades Criptográficas: Clases de ayuda para generar strings y secretos aleatorios criptográficamente seguros.
  • Manejo de Código Heredado: Incluye una clase LegacyAesCbcEncryption marcada como obsoleta para mantener compatibilidad con datos cifrados antiguos.

🚀 Instalación

Instala el paquete a través de la consola del Administrador de Paquetes NuGet:

Install-Package Quantum.Security -Version 1.0.0

O mediante la CLI de .NET:

dotnet add package Quantum.Security --version 1.0.0

💡 Ejemplos de Uso

Cifrado de Datos con Expiración

using Quantum.Security.Symmetric;

var secretKey = AesGcmEncryption.GenerateNewKeyAsBase64();
var aes = new AesGcmEncryption(secretKey);

// Cifrar un dato que es válido por 30 minutos
string plainText = "Esta es información confidencial";
string cipherText = aes.Encrypt(plainText, TimeSpan.FromMinutes(30));

// Descifrar (fallará después de 30 minutos)
string decryptedText = aes.Decrypt(cipherText);

Hashing y Verificación de Contraseñas

using Quantum.Security.Hashing;

// Al registrar un usuario
string password = "MiClaveSuperSegura!123";
string hashedPassword = PasswordHasher.HashPassword(password);
// Guardar 'hashedPassword' en la base de datos.

// Al hacer login
bool isValid = PasswordHasher.VerifyPassword("MiClaveSuperSegura!123", hashedPassword); // true
bool isInvalid = PasswordHasher.VerifyPassword("claveincorrecta", hashedPassword); // false

Ofuscar un ID de Base de Datos

using Quantum.Security.Obfuscators;

// La clave debe tener 16, 24 o 32 caracteres. ¡Guárdala de forma segura!
var obfuscator = new GuidObfuscator("mi_clave_secreta_de_16_chars");

long databaseId = 12345;
string publicId = obfuscator.Obfuscate(databaseId);
// publicId se verá como un GUID: ej. "b2a5c89e-2a42-4f01-b8f2-8a7c1e9b2a1a"

long originalId = obfuscator.DeobfuscateToLong(publicId); // 12345

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Quantum.Security:

Package Downloads
Quantum.Data.Executor

Librería de acceso a datos moderna y extensible. Actúa como el motor de ejecución para los scripts generados por Quantum.Data.SqlBuilder, proporcionando una interfaz unificada para SQL Server y servicios web ASMX heredados.

Quantum.Security.JWT

Una librería de seguridad .NET ligera y segura para generar JWT encriptados

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 154 9/11/2025

Versión 1.0.0: Lanzamiento inicial de la librería Quantum.Security.
 - Cifrado simétrico moderno con AesGcmEncryption (con soporte para expiración).
 - Hashing de contraseñas seguro con PasswordHasher (PBKDF2-SHA256).
 - Utilidad GuidObfuscator para enmascarar IDs numéricos.
 - Clases de ayuda para generación de aleatorios y gestión de secretos.