Skip to main content

Campos e storages criptografados para o Django.

Project description

django-encrypted-fields

Uma biblioteca Django para criptografar e descriptografar campos em modelos (ORM), incluindo tipos de dados simples, arquivos e imagens.

Esta biblioteca utiliza o módulo cryptography.fernet para garantir a criptografia simétrica, protegendo dados sensíveis de maneira simples e eficaz.

Funcionalidades

  • Criptografa campos de tipos de dados como IntegerField, FloatField, CharField, BooleanField, entre outros.
  • Suporte a campos de arquivo (FileField) e imagens (ImageField) com criptografia.
  • Integração fácil com o ORM do Django, sem necessidade de alterações no modelo.
  • Segurança robusta utilizando o cryptography.fernet.

Requisitos

  • Python 3.10 ou superior
  • Django 4.2 ou superior
  • Biblioteca cryptography
  • Biblioteca pillow
  • Biblioteca django

Instalação

Para instalar a biblioteca, basta adicionar o pacote no seu projeto ou instalá-lo via pip.

Usando pip:

pip install django-encrypted-fields

Manualmente:

  1. Baixe o código fonte ou clone o repositório:

    git clone https://github.com/D3NKYT0/django-encrypted-fields
    
  2. Instale os requisitos:

    pip install -r requirements.txt
    

Configuração

  1. Adicione a chave de criptografia no arquivo settings.py:

    No arquivo settings.py, defina a chave de criptografia ENCRYPTION_KEY:

    ENCRYPTION_KEY = 'sua_chave_gerada_aleatoriamente_com_32_bytes'
    DATA_UPLOAD_MAX_MEMORY_SIZE = 10485760  # 10 * 1024 * 1024
    SERVE_DECRYPTED_FILE_URL_BASE =  'patch/here/'
    

    Importante: A chave de criptografia deve ser mantida em segredo. Use uma chave única para o seu projeto e não compartilhe publicamente.

  2. Adicionar django-encrypted-fields à lista de apps instalados:

    No arquivo settings.py, adicione o app à lista INSTALLED_APPS:

    INSTALLED_APPS = [
        # outros apps
        'server_files',  # Seu app com os campos criptografados
    ]
    

Uso

Modelos

Agora, você pode usar os campos criptografados em seus modelos Django da seguinte forma:

from django.db import models
from encrypted_fields.encrypted_fields import *
from encrypted_fields.encrypted_files import *

class MeuModelo(models.Model):
    campo_inteiro = EncryptedIntegerField()
    campo_arquivo = EncryptedFileField(upload_to='arquivos/')
    campo_imagem = EncryptedImageField(upload_to='imagens/')

Funcionalidade dos campos:

  • EncryptedIntegerField: Campo para armazenar valores inteiros criptografados.
  • EncryptedFileField: Campo para armazenar arquivos criptografados.
  • EncryptedImageField: Campo para armazenar imagens criptografadas.

Os valores são criptografados automaticamente antes de serem salvos no banco de dados e descriptografados quando acessados.

Contribuição

Sinta-se à vontade para contribuir! Para sugestões ou melhorias, siga os seguintes passos:

  1. Faça um fork deste repositório.
  2. Crie uma branch (git checkout -b feature-nome-da-sua-feature).
  3. Comite suas mudanças (git commit -am 'Adicionando nova funcionalidade').
  4. Envie para o repositório remoto (git push origin feature-nome-da-sua-feature).
  5. Abra um Pull Request.

Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_encrypted_fields_and_files-0.1.3.tar.gz (10.6 kB view details)

Uploaded Source

File details

Details for the file django_encrypted_fields_and_files-0.1.3.tar.gz.

File metadata

File hashes

Hashes for django_encrypted_fields_and_files-0.1.3.tar.gz
Algorithm Hash digest
SHA256 16c8a4939e79eb0f6c3569bf3defeaf569b377a4bd74557e04e2078bd41eac18
MD5 6aedcc61928d3eadb78bd0dd5c203571
BLAKE2b-256 e3fd0b5db93be36c561ebbd72f09d73cb2af790b5e0a6dc68eda40263e95d00e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page