page-encryptor


Namepage-encryptor JSON
Version 0.5.0 PyPI version JSON
download
home_pageNone
SummaryOffline HTML encryption with in-browser decryption, inspired by PageCrypt
upload_time2025-07-30 04:33:41
maintainerNone
docs_urlNone
authorCarlos Asmat
requires_python>=3.11
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🔐 page-encryptor

**page-encryptor** is a simple Python utility to encrypt static HTML pages offline and embed a JavaScript-based decryptor for in-browser access. It's inspired by [PageCrypt](https://github.com/MaxLaumeister/PageCrypt) by Max Laumeister, but is independently developed and substantially refactored for modern Python workflows and packaging.

## ✨ Features

- AES-GCM encryption with PBKDF2 key derivation
- Fully static: No server required
- Runs offline — ideal for sensitive or private HTML content
- Decrypts in-browser using an embeddable JavaScript template
- Designed for automation and integration into static site generators (e.g., 11ty)
- Lightweight and dependency-minimal

## 📦 Installation

```bash
pip install page-encryptor
```

## 🚀 Usage

```bash
page-encryptor \
  --input path/to/file.html \
  --password your-secret-password \
  --template decryptor_template.html \
  --output protected-file.html

```

The template file must contain the placeholder `/*__PAYLOAD__*/""` which will be replaced with the encrypted data payload in Base64. See [decryptor_template.html](page_encryptor/templates/decryptor_template.html).

## 🧩 Example

```bash
page-encryptor \
  --input index.html \
  --template decryptor_template.html \
  --output index-protected.html \
  --password hunter2

```

You can now open `index-protected.html` in a browser and enter your password to decrypt it in place.

## 🛠️ Development

To set up the project locally:

```bash
git clone https://github.com/yourname/page-encryptor.git
cd page-encryptor
python3 -m venv venv
source venv/bin/activate.fish
pip install .
pip install .[dev]
```

Run script:

```bash
cd page_encryptor
./encryptor.py --help
```

Run formatting and hooks:

```bash
pre-commit install
pre-commit run --all-files
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "page-encryptor",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": "Carlos Asmat",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ff/31/05905604e1a252a13ea271b4512f83cdd5315553e49d951d9366a2702072/page_encryptor-0.5.0.tar.gz",
    "platform": null,
    "description": "# \ud83d\udd10 page-encryptor\n\n**page-encryptor** is a simple Python utility to encrypt static HTML pages offline and embed a JavaScript-based decryptor for in-browser access. It's inspired by [PageCrypt](https://github.com/MaxLaumeister/PageCrypt) by Max Laumeister, but is independently developed and substantially refactored for modern Python workflows and packaging.\n\n## \u2728 Features\n\n- AES-GCM encryption with PBKDF2 key derivation\n- Fully static: No server required\n- Runs offline \u2014 ideal for sensitive or private HTML content\n- Decrypts in-browser using an embeddable JavaScript template\n- Designed for automation and integration into static site generators (e.g., 11ty)\n- Lightweight and dependency-minimal\n\n## \ud83d\udce6 Installation\n\n```bash\npip install page-encryptor\n```\n\n## \ud83d\ude80 Usage\n\n```bash\npage-encryptor \\\n  --input path/to/file.html \\\n  --password your-secret-password \\\n  --template decryptor_template.html \\\n  --output protected-file.html\n\n```\n\nThe template file must contain the placeholder `/*__PAYLOAD__*/\"\"` which will be replaced with the encrypted data payload in Base64. See [decryptor_template.html](page_encryptor/templates/decryptor_template.html).\n\n## \ud83e\udde9 Example\n\n```bash\npage-encryptor \\\n  --input index.html \\\n  --template decryptor_template.html \\\n  --output index-protected.html \\\n  --password hunter2\n\n```\n\nYou can now open `index-protected.html` in a browser and enter your password to decrypt it in place.\n\n## \ud83d\udee0\ufe0f Development\n\nTo set up the project locally:\n\n```bash\ngit clone https://github.com/yourname/page-encryptor.git\ncd page-encryptor\npython3 -m venv venv\nsource venv/bin/activate.fish\npip install .\npip install .[dev]\n```\n\nRun script:\n\n```bash\ncd page_encryptor\n./encryptor.py --help\n```\n\nRun formatting and hooks:\n\n```bash\npre-commit install\npre-commit run --all-files\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Offline HTML encryption with in-browser decryption, inspired by PageCrypt",
    "version": "0.5.0",
    "project_urls": {
        "Homepage": "https://gitlab.com/sotilrac/page-encryptor"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9d97c2d4863c19a7c1dc2c09d0178e077d3d279a7d716ac22e09e94d0f1dbda0",
                "md5": "16905d755bf7890daa95f9394c83f3eb",
                "sha256": "f64337339206e01a3d52af4a11d1ddb61749635a81c413a7922f6963cddd8139"
            },
            "downloads": -1,
            "filename": "page_encryptor-0.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "16905d755bf7890daa95f9394c83f3eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 7338,
            "upload_time": "2025-07-30T04:33:41",
            "upload_time_iso_8601": "2025-07-30T04:33:41.113266Z",
            "url": "https://files.pythonhosted.org/packages/9d/97/c2d4863c19a7c1dc2c09d0178e077d3d279a7d716ac22e09e94d0f1dbda0/page_encryptor-0.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff3105905604e1a252a13ea271b4512f83cdd5315553e49d951d9366a2702072",
                "md5": "f5a8fff334c9e616e96d5eec073a5ed2",
                "sha256": "dc3cfe988812c81c3dd9aa6ff1b6835b10c3949899a3b653100225ad3e6476c7"
            },
            "downloads": -1,
            "filename": "page_encryptor-0.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f5a8fff334c9e616e96d5eec073a5ed2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 6509,
            "upload_time": "2025-07-30T04:33:41",
            "upload_time_iso_8601": "2025-07-30T04:33:41.813368Z",
            "url": "https://files.pythonhosted.org/packages/ff/31/05905604e1a252a13ea271b4512f83cdd5315553e49d951d9366a2702072/page_encryptor-0.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-30 04:33:41",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "sotilrac",
    "gitlab_project": "page-encryptor",
    "lcname": "page-encryptor"
}
        
Elapsed time: 1.04633s