django-encrypted-fields-and-files


Namedjango-encrypted-fields-and-files JSON
Version 0.1.12 PyPI version JSON
download
home_pagehttps://github.com/D3NKYT0/django-encrypted-fields
SummaryCampos e storages criptografados para o Django com suporte a timestamp para evitar cache.
upload_time2025-08-04 23:09:13
maintainerNone
docs_urlNone
authorDenky
requires_python>=3.10
licenseMIT
keywords django encryption fields files timestamp cache
VCS
bugtrack_url
requirements django cryptography pillow setuptools pyopenssl
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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`:

```bash
pip install django-encrypted-fields
```

### Manualmente:

1. Baixe o código fonte ou clone o repositório:
   
   ```bash
   git clone https://github.com/D3NKYT0/django-encrypted-fields
   ```

2. Instale os requisitos:
   
   ```bash
   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`:

   ```python
   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`:

   ```python
   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:

```python
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](LICENSE) para mais detalhes.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/D3NKYT0/django-encrypted-fields",
    "name": "django-encrypted-fields-and-files",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Denky <contato@denky.dev.br>",
    "keywords": "django, encryption, fields, files, timestamp, cache",
    "author": "Denky",
    "author_email": "Denky <contato@denky.dev.br>",
    "download_url": "https://files.pythonhosted.org/packages/68/3c/b2aef4d90aa20b2b6c3e485350062333e34770dbdecf8b5f31bf709f54b7/django_encrypted_fields_and_files-0.1.12.tar.gz",
    "platform": null,
    "description": "# django-encrypted-fields\r\n\r\nUma biblioteca Django para criptografar e descriptografar campos em modelos (ORM), incluindo tipos de dados simples, arquivos e imagens. \r\n\r\nEsta biblioteca utiliza o m\u00f3dulo `cryptography.fernet` para garantir a criptografia sim\u00e9trica, protegendo dados sens\u00edveis de maneira simples e eficaz.\r\n\r\n## Funcionalidades\r\n\r\n- Criptografa campos de tipos de dados como `IntegerField`, `FloatField`, `CharField`, `BooleanField`, entre outros.\r\n- Suporte a campos de arquivo (`FileField`) e imagens (`ImageField`) com criptografia.\r\n- Integra\u00e7\u00e3o f\u00e1cil com o ORM do Django, sem necessidade de altera\u00e7\u00f5es no modelo.\r\n- Seguran\u00e7a robusta utilizando o `cryptography.fernet`.\r\n\r\n## Requisitos\r\n\r\n- Python 3.10 ou superior\r\n- Django 4.2 ou superior\r\n- Biblioteca `cryptography`\r\n- Biblioteca `pillow`\r\n- Biblioteca `django`\r\n\r\n## Instala\u00e7\u00e3o\r\n\r\nPara instalar a biblioteca, basta adicionar o pacote no seu projeto ou instal\u00e1-lo via `pip`.\r\n\r\n### Usando `pip`:\r\n\r\n```bash\r\npip install django-encrypted-fields\r\n```\r\n\r\n### Manualmente:\r\n\r\n1. Baixe o c\u00f3digo fonte ou clone o reposit\u00f3rio:\r\n   \r\n   ```bash\r\n   git clone https://github.com/D3NKYT0/django-encrypted-fields\r\n   ```\r\n\r\n2. Instale os requisitos:\r\n   \r\n   ```bash\r\n   pip install -r requirements.txt\r\n   ```\r\n\r\n## Configura\u00e7\u00e3o\r\n\r\n1. **Adicione a chave de criptografia no arquivo `settings.py`:**\r\n\r\n   No arquivo `settings.py`, defina a chave de criptografia `ENCRYPTION_KEY`:\r\n\r\n   ```python\r\n   ENCRYPTION_KEY = 'sua_chave_gerada_aleatoriamente_com_32_bytes'\r\n   DATA_UPLOAD_MAX_MEMORY_SIZE = 10485760  # 10 * 1024 * 1024\r\n   SERVE_DECRYPTED_FILE_URL_BASE =  'patch/here/'\r\n   ```\r\n\r\n   **Importante**: A chave de criptografia deve ser mantida em segredo. Use uma chave \u00fanica para o seu projeto e n\u00e3o compartilhe publicamente.\r\n\r\n2. **Adicionar `django-encrypted-fields` \u00e0 lista de apps instalados:**\r\n\r\n   No arquivo `settings.py`, adicione o app \u00e0 lista `INSTALLED_APPS`:\r\n\r\n   ```python\r\n   INSTALLED_APPS = [\r\n       # outros apps\r\n       'server_files',  # Seu app com os campos criptografados\r\n   ]\r\n   ```\r\n\r\n## Uso\r\n\r\n### Modelos\r\n\r\nAgora, voc\u00ea pode usar os campos criptografados em seus modelos Django da seguinte forma:\r\n\r\n```python\r\nfrom django.db import models\r\nfrom encrypted_fields.encrypted_fields import *\r\nfrom encrypted_fields.encrypted_files import *\r\n\r\nclass MeuModelo(models.Model):\r\n    campo_inteiro = EncryptedIntegerField()\r\n    campo_arquivo = EncryptedFileField(upload_to='arquivos/')\r\n    campo_imagem = EncryptedImageField(upload_to='imagens/')\r\n```\r\n\r\n### Funcionalidade dos campos:\r\n\r\n- **`EncryptedIntegerField`**: Campo para armazenar valores inteiros criptografados.\r\n- **`EncryptedFileField`**: Campo para armazenar arquivos criptografados.\r\n- **`EncryptedImageField`**: Campo para armazenar imagens criptografadas.\r\n\r\nOs valores s\u00e3o criptografados automaticamente antes de serem salvos no banco de dados e descriptografados quando acessados.\r\n\r\n\r\n## Contribui\u00e7\u00e3o\r\n\r\nSinta-se \u00e0 vontade para contribuir! Para sugest\u00f5es ou melhorias, siga os seguintes passos:\r\n\r\n1. Fa\u00e7a um fork deste reposit\u00f3rio.\r\n2. Crie uma branch (`git checkout -b feature-nome-da-sua-feature`).\r\n3. Comite suas mudan\u00e7as (`git commit -am 'Adicionando nova funcionalidade'`).\r\n4. Envie para o reposit\u00f3rio remoto (`git push origin feature-nome-da-sua-feature`).\r\n5. Abra um Pull Request.\r\n\r\n## Licen\u00e7a\r\n\r\nEste projeto est\u00e1 licenciado sob a Licen\u00e7a MIT - veja o arquivo [LICENSE](LICENSE) para mais detalhes.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Campos e storages criptografados para o Django com suporte a timestamp para evitar cache.",
    "version": "0.1.12",
    "project_urls": {
        "Documentation": "https://github.com/D3NKYT0/django-encrypted-fields/wiki",
        "Homepage": "https://denky.dev.br/django-encrypted-fields",
        "Issue Tracker": "https://github.com/D3NKYT0/django-encrypted-fields/issues",
        "Repository": "https://github.com/D3NKYT0/django-encrypted-fields"
    },
    "split_keywords": [
        "django",
        " encryption",
        " fields",
        " files",
        " timestamp",
        " cache"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fbbf7403e8f23fac5aeee7c6ef6888c7345189b2a0176060cf92656df2586c77",
                "md5": "a4bb361a316c5d2aeeb7656957fce0de",
                "sha256": "ed1b16c4bb8c985dd1cd6a4aa9f1ac008784d4349f644c0312de39e072bf0ff3"
            },
            "downloads": -1,
            "filename": "django_encrypted_fields_and_files-0.1.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a4bb361a316c5d2aeeb7656957fce0de",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 13845,
            "upload_time": "2025-08-04T23:09:12",
            "upload_time_iso_8601": "2025-08-04T23:09:12.738269Z",
            "url": "https://files.pythonhosted.org/packages/fb/bf/7403e8f23fac5aeee7c6ef6888c7345189b2a0176060cf92656df2586c77/django_encrypted_fields_and_files-0.1.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "683cb2aef4d90aa20b2b6c3e485350062333e34770dbdecf8b5f31bf709f54b7",
                "md5": "f8366cce7988ddb87752bea05e23614b",
                "sha256": "c2402a7c71755a6c60d167e8f5b51f2f5f3662ed3a8f3bb3311026f63ed92bff"
            },
            "downloads": -1,
            "filename": "django_encrypted_fields_and_files-0.1.12.tar.gz",
            "has_sig": false,
            "md5_digest": "f8366cce7988ddb87752bea05e23614b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 11907,
            "upload_time": "2025-08-04T23:09:13",
            "upload_time_iso_8601": "2025-08-04T23:09:13.927891Z",
            "url": "https://files.pythonhosted.org/packages/68/3c/b2aef4d90aa20b2b6c3e485350062333e34770dbdecf8b5f31bf709f54b7/django_encrypted_fields_and_files-0.1.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 23:09:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "D3NKYT0",
    "github_project": "django-encrypted-fields",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "django",
            "specs": [
                [
                    ">=",
                    "5.0"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    ">=",
                    "41.0.5"
                ],
                [
                    "<",
                    "45.0.0"
                ]
            ]
        },
        {
            "name": "pillow",
            "specs": [
                [
                    ">=",
                    "10.0.0"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    ">=",
                    "75.8.0"
                ]
            ]
        },
        {
            "name": "pyopenssl",
            "specs": [
                [
                    ">=",
                    "23.0.0"
                ],
                [
                    "<",
                    "25.0.0"
                ]
            ]
        }
    ],
    "lcname": "django-encrypted-fields-and-files"
}
        
Elapsed time: 1.92472s