Cepedi.DataEncryption 10.0.2

dotnet add package Cepedi.DataEncryption --version 10.0.2
                    
NuGet\Install-Package Cepedi.DataEncryption -Version 10.0.2
                    
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="Cepedi.DataEncryption" Version="10.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cepedi.DataEncryption" Version="10.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Cepedi.DataEncryption" />
                    
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 Cepedi.DataEncryption --version 10.0.2
                    
#r "nuget: Cepedi.DataEncryption, 10.0.2"
                    
#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 Cepedi.DataEncryption@10.0.2
                    
#: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=Cepedi.DataEncryption&version=10.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Cepedi.DataEncryption&version=10.0.2
                    
Install as a Cake Tool

Cepedi.DataEncryption

O Cepedi.DataEncrypt é uma extensão para NPGSQL que oferece suporte às Funções de Criptografia Bruta (Raw Encryption Functions) nativas do PostgreSQL (especificamente encrypt_iv e decrypt_iv utilizando aes-cbc/pad:pkcs).

A principal vantagem desta biblioteca é permitir a execução de consultas de busca (search queries) diretamente em colunas criptografadas no banco de dados. Este recurso é essencial para sistemas que necessitam de conformidade com regulamentações de proteção de dados, como a LGPD ou GDPR.

⚠️ Nota de Segurança Crítica

Ao utilizar esta biblioteca, a SENHA BRUTA (RAW PASSWORD) de criptografia será transmitida através da rede. Portanto, é obrigatório que a conexão da sua aplicação com o serviço PostgreSQL utilize uma conexão criptografada. Você pode forçar isso na sua string de conexão:

{
  "DefaultConnection": "Server=127.0.0.1;port=5432;user id=postgres;password=postgres;database=AESTester;pooling=true;Encoding=UTF8;SSL Mode=Require;Trust Server Certificate=true;"
}

Atente-se aos parâmetros SSL Mode=Require;Trust Server Certificate=true;.


Dependências e Compatibilidade

O Cepedi.DataEncrypt tem como alvo o net10.0. O pacote possui a seguinte dependência:

<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1" />

Versionamento: Utilize sempre a versão do pacote compatível com a versão do .NET do seu projeto.


Configuração

1. Instalação via NuGet:

Install-Package Cepedi.DataEncrypt

2. Configuração do DbContext:

No seu DbContext, configure a senha e a extensão do PostgreSQL:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    base.OnConfiguring(optionsBuilder);
    // Substitua "sua_senha" pela sua chave real
    optionsBuilder.UseEncryptionFunctions("sua_senha", EncKeyLength.L128);
}

protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);
    // Habilita a extensão pgcrypto no PostgreSQL
    builder.HasPostgresExtension("pgcrypto");
    builder.UseEncryptAttribute("sua_senha", EncKeyLength.L128);
}

Exemplos de Uso

Uso da Anotação Encrypted

Utilize o atributo para denotar que a propriedade deve ser criptografada no banco de dados:

public class TestModel
{
    public string Id { get; set; } = Guid.NewGuid().ToString();
    
    [Encrypted] 
    public string Name { get; set; }
}

Consultas de Busca (Search Query)

Este código converterá o LINQ em uma consulta SQL nativa que descriptografa a coluna antes de realizar a busca:

var searchTest = _dbContext.TModels
    .Where(x => x.Name.NpgDecrypt().Contains("teste"))
    .ToList();

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.2 231 2/9/2026
10.0.1 120 2/9/2026