EasyCryptoSalt

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

Stars
1
Committers
1

Bot releases are hidden (Show)

EasyCryptoSalt - v.1.0.3

Published by alexfariakof 4 months ago

What's Changed

Full Changelog: https://github.com/alexfariakof/EasyCryptoSalt/compare/v1.1.2...v1.0.2

EasyCryptoSalt - v1.0.1 Latest Release

Published by alexfariakof 5 months ago

EasyCryptoSalt

Visão Geral

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.

Instalação

Para instalar o pacote NuGet EasyCryptoSalt, execute o seguinte comando no console do Gerenciador de Pacotes NuGet:

Install-Package EasyCryptoSalt

Configuração

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"
  }
}

Uso

  • Exemplo de Uso em Código
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}");
    }
}
  • Classe CryptoOptions
public class CryptoOptions
{
    public string Key { get; set; }
    public string AuthSalt { get; set; }
}
  • Classe Crypto

Descrição

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.

Propriedades

* Instance: Propriedade estática que retorna uma instância singleton da classe Crypto.

* Construtores

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.

* Métodos

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.
EasyCryptoSalt - v1.0.0

Published by alexfariakof 5 months ago

EasyCryptoSalt

Visão Geral

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.

Instalação

Para instalar o pacote NuGet EasyCryptoSalt, execute o seguinte comando no console do Gerenciador de Pacotes NuGet:

Install-Package EasyCryptoSalt

Configuração

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"
  }
}

Uso

  • Exemplo de Uso em Código
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}");
    }
}
  • Classe CryptoOptions
public class CryptoOptions
{
    public string Key { get; set; }
    public string AuthSalt { get; set; }
}
  • Classe Crypto

Descrição

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.

Propriedades

* Instance: Propriedade estática que retorna uma instância singleton da classe Crypto.

* Construtores

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.

* Métodos

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.