Skip to main content

Campos e storages criptografados para o Django com suporte a timestamp para evitar cache.

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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

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

File metadata

File hashes

Hashes for django_encrypted_fields_and_files-0.1.12.tar.gz
Algorithm Hash digest
SHA256 c2402a7c71755a6c60d167e8f5b51f2f5f3662ed3a8f3bb3311026f63ed92bff
MD5 f8366cce7988ddb87752bea05e23614b
BLAKE2b-256 683cb2aef4d90aa20b2b6c3e485350062333e34770dbdecf8b5f31bf709f54b7

See more details on using hashes here.

File details

Details for the file django_encrypted_fields_and_files-0.1.12-py3-none-any.whl.

File metadata

File hashes

Hashes for django_encrypted_fields_and_files-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 ed1b16c4bb8c985dd1cd6a4aa9f1ac008784d4349f644c0312de39e072bf0ff3
MD5 a4bb361a316c5d2aeeb7656957fce0de
BLAKE2b-256 fbbf7403e8f23fac5aeee7c6ef6888c7345189b2a0176060cf92656df2586c77

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