A plugin for Microsoft.EntityFrameworkCore to add support for encrypted fields using built-in or custom encryption providers.
EntityFrameworkCore.DataEncryption is a plugin for Microsoft Entity Framework Core that adds support for encrypting specific fields in database entities. It solves the problem of protecting sensitive data at the database level by transparently encrypting and decrypting fields like passwords or personal information during EF Core operations. The library supports both built-in AES encryption and custom encryption providers.
.NET developers using Entity Framework Core who need to encrypt sensitive fields in their database models without major code changes. It's particularly useful for applications handling regulated data like PII or credentials.
Developers choose this library because it integrates seamlessly with EF Core, requires minimal configuration, and offers flexibility through both attribute-based and fluent configuration. Its support for custom providers allows teams to meet specific security or compliance requirements.
A plugin for Microsoft.EntityFrameworkCore to add support of encrypted fields using built-in or custom encryption providers.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both attribute-based decoration and fluent configuration, allowing seamless integration into existing codebases without major refactoring, as demonstrated in the README examples.
Enables creation of custom encryption providers via the IEncryptionProvider interface, making it adaptable to specific security protocols or compliance requirements, as outlined in the 'Create an encryption provider' section.
Automatically encrypts data on save and decrypts on read within EF Core, minimizing code changes and reducing developer overhead for handling sensitive fields.
Includes an AesProvider with support for 128-bit to 256-bit keys, offering robust security out of the box for common use cases like protecting passwords or PII.
Requires developers to securely store and manage encryption keys within the application, increasing the risk of key loss or exposure, as cautioned in the disclaimer section of the README.
Encrypted fields cannot be indexed or queried efficiently in the database, hindering search functionality and potentially degrading performance for data-heavy operations.
Only supports encryption for string and byte[] properties, limiting its use with other common data types like integers or dates, as noted in the 'Supported types' table.