Biblioteca simples e eficiente para operações criptográficas em .NET. Usando o algoritmo SHA-256, juntamente com a capacidade de comparar hashes utilizando uma chave e um salt.
GPL-3.0 License
Bot releases are hidden (Show)
Published by alexfariakof 4 months ago
Full Changelog: https://github.com/alexfariakof/EasyCryptoSalt/compare/v1.1.2...v1.0.2
O EasyCryptoSalt é uma biblioteca para operações criptográficas em .NET. Esta biblioteca oferece funcionalidades para hashing seguro usando o algoritmo SHA-256, juntamente com a capacidade de comparar hashes utilizando uma chave e um salt. Ela é especialmente útil para armazenar e verificar senhas de forma segura.
Para instalar o pacote NuGet EasyCryptoSalt
, execute o seguinte comando no console do Gerenciador de Pacotes NuGet:
Install-Package EasyCryptoSalt
Certifique-se de que o arquivo appsettings.json contém a seção CryptoConfigurations com as chaves necessárias:
{
"CryptoConfigurations": {
"Key": "sua-chave-segura-aqui",
"AuthSalt": "seu-auth-salt-aqui"
}
}
using EasyCryptoSalt;
using Microsoft.Extensions.Options;
public class Program
{
public static void Main(string[] args)
{
// Exemplo de configuração usando IOptions
var options = Options.Create(new CryptoOptions
{
Key = "sua-chave-segura-aqui",
AuthSalt = "seu-auth-salt-aqui"
});
ICrypto crypto = new Crypto(options);
// Gerar um hash seguro
string hashedText = crypto.Encrypt("Texto a ser hashado");
// Verificar se um texto simples corresponde a um hash
bool isMatch = crypto.IsEquals("Texto a ser verificado", hashedText);
Console.WriteLine($"Texto hashado: {hashedText}");
Console.WriteLine($"Verificação: {isMatch}");
}
}
public class CryptoOptions
{
public string Key { get; set; }
public string AuthSalt { get; set; }
}
A classe Crypto é responsável por realizar operações criptográficas, incluindo a geração de hashes com SHA-256 e a comparação de hashes utilizando uma chave e um salt.
Crypto(): Construtor privado que inicializa a chave e o salt a partir do arquivo de configuração appsettings.json.
Crypto(IOptions options): Construtor público que inicializa a chave e o salt a partir das opções fornecidas no arquivo de configuração appsettings.json.
public string Encrypt(string input)
- Descrição: Gera um hash com salt para o input fornecido.
- Parâmetros:
input (string): Texto a ser hashado.- Retorno:
string: Hash com salt em formato Base64.
public bool Verify(string plainText, string hash)
- Descrição: Verifica se o texto simples fornecido corresponde ao hash fornecido.
- Parâmetros:
plainText (string): Texto simples a ser verificado.
hash (string): Hash para comparação.- Retorno:
bool: Retorna true se o texto simples gerar o mesmo hash; caso contrário, false.
private byte[] GenerateSalt()
- Descrição: Gera um salt aleatório baseado na chave Auth Salt definida em appsettings.json.
- Retorno:
byte[]: Salt aleatório.
Published by alexfariakof 5 months ago
O EasyCryptoSalt é uma biblioteca para operações criptográficas em .NET. Esta biblioteca oferece funcionalidades para hashing seguro usando o algoritmo SHA-256, juntamente com a capacidade de comparar hashes utilizando uma chave e um salt. Ela é especialmente útil para armazenar e verificar senhas de forma segura.
Para instalar o pacote NuGet EasyCryptoSalt
, execute o seguinte comando no console do Gerenciador de Pacotes NuGet:
Install-Package EasyCryptoSalt
Certifique-se de que o arquivo appsettings.json contém a seção CryptoConfigurations com as chaves necessárias:
{
"CryptoConfigurations": {
"Key": "sua-chave-segura-aqui",
"AuthSalt": "seu-auth-salt-aqui"
}
}
using EasyCryptoSalt;
using Microsoft.Extensions.Options;
public class Program
{
public static void Main(string[] args)
{
// Exemplo de configuração usando IOptions
var options = Options.Create(new CryptoOptions
{
Key = "sua-chave-segura-aqui",
AuthSalt = "seu-auth-salt-aqui"
});
ICrypto crypto = new Crypto(options);
// Gerar um hash seguro
string hashedText = crypto.Encrypt("Texto a ser hashado");
// Verificar se um texto simples corresponde a um hash
bool isMatch = crypto.IsEquals("Texto a ser verificado", hashedText);
Console.WriteLine($"Texto hashado: {hashedText}");
Console.WriteLine($"Verificação: {isMatch}");
}
}
public class CryptoOptions
{
public string Key { get; set; }
public string AuthSalt { get; set; }
}
A classe Crypto é responsável por realizar operações criptográficas, incluindo a geração de hashes com SHA-256 e a comparação de hashes utilizando uma chave e um salt.
Crypto(): Construtor privado que inicializa a chave e o salt a partir do arquivo de configuração appsettings.json.
Crypto(IOptions options): Construtor público que inicializa a chave e o salt a partir das opções fornecidas no arquivo de configuração appsettings.json.
public string Encrypt(string input)
- Descrição: Gera um hash com salt para o input fornecido.
- Parâmetros:
input (string): Texto a ser hashado.- Retorno:
string: Hash com salt em formato Base64.
public bool IsEquals(string plainText, string hash)
- Descrição: Verifica se o texto simples fornecido corresponde ao hash fornecido.
- Parâmetros:
plainText (string): Texto simples a ser verificado.
hash (string): Hash para comparação.- Retorno:
bool: Retorna true se o texto simples gerar o mesmo hash; caso contrário, false.
private byte[] GenerateSalt()
- Descrição: Gera um salt aleatório baseado na chave Auth Salt definida em appsettings.json.
- Retorno:
byte[]: Salt aleatório.