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.5.tar.gz (12.4 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for django_encrypted_fields_and_files-0.1.5.tar.gz
Algorithm Hash digest
SHA256 223f5988e7b135a3b14cd835448fc77c3f70445631dd08b0b8c83bcac2ab269a
MD5 87ddefc847328134b108d02f3accd735
BLAKE2b-256 504408352863511eb73ab8663da2342851e77942b89b595ee696c41b01e9dbf1

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