Giter Site home page Giter Site logo

alexfariakof / easycryptosalt Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 115 KB

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.

Home Page: https://www.nuget.org/packages/EasyCryptoSalt/

License: GNU General Public License v3.0

C# 92.24% PowerShell 7.76%
cryptography cryptography-algorithms csharp dotnet dotnet-core reportgenerator salt sha256-crypt xunit xunit-tests

easycryptosalt's Introduction

Read this page in English

EasyCryptoSalt

O EasyCryptoSalt é uma biblioteca simples e eficiente para operações criptográficas em .NET. Ele oferece funcionalidades para hashing seguro usando o algoritmo SHA-256, juntamente com a capacidade de comparar hashes utilizando uma chave e um salt.

Principais Recursos

  • Esta versão utiliza .NET Standard 2.0, tornando-o reutilizável em várias plataformas .NET.
  • Hashing Seguro: Gere hashes seguros usando o algoritmo de hash SHA-256.
  • Comparação de Hashes: Verifique se o texto simples corresponde ao hash fornecido com facilidade.
  • Segurança Adicional com Salt: Utilize um salt adicional para aumentar a segurança dos hashes gerados.

Instalação

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

  dotnet add package EasyCryptoSalt --version 1.0.3

Configuração

Certifique-se de que o arquivo appsettings.json contém a seção CryptoConfigurations com as chaves necessárias:

{
   "CryptoConfigurations": {
        "Key": "Exemplo de Chave `^AOUWNW16h*634+=tq51#2fa8091$2jnsais71298>shsady|==",
        "AuthSalt": "Exemplo de Auth salt ``àadskldjlskjdlk\gwt257__1816!?}[oap725-1%"
   }
}

Exemplo de Uso Modo 1

using EasyCryptoSalt;

// Criar uma instância de Crypto
var crypto = Crypto.Instance;

// Gerar um hash seguro
string hashedText = crypto.Encrypt("Texto a ser hashado");

// Verificar se um texto simples corresponde a um hash
bool isMatch = crypto.Verify("Texto a ser verificado", hashedText);

Exemplo de Uso Modo 2

#program.cs
using EasyCryptoSalt;

var builder = WebApplication.CreateBuilder(args);
builder.Services.Configure<CryptoOptions>(configuration.GetSection("CryptoConfigurations"));
builder.Services.AddSingleton<ICrypto, Crypto>();

var app = builder.Build();      
app.Run();

#ExampleClass.cs 
using EasyCryptoSalt;

public class ExampleClass
{
  private readonly ICrypto _crypto;
  public ExampleClass(ICrypto crypto)
  {
    _crypto = crypto;
  }

  public void UseCrypto()
  {
    // Gerar um hash seguro
    string hashedText = crypto.Encrypt("Texto a ser hashado");

    // Verificar se um texto simples corresponde a um hash
    bool isMatch = crypto.Verify("Texto a ser verificado", hashedText);
  }
}        

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.

Observações:

  • Certifique-se de configurar corretamente a chave e o salt no arquivo de configuração appsettings.json para garantir a segurança adequada dos hashes gerados.

    {
      "CryptoConfigurations": {
        "Key": "exemplo de Chave ",
        "AuthSalt": "exemplo de Auth salt"
      }
    }
  • Esta biblioteca é projetada para ser fácil de usar e oferecer segurança robusta para suas necessidades criptográficas em .NET.

easycryptosalt's People

Contributors

alexfariakof avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.