--- id: pyffx version: "0.3.0" license: MIT License license_treatment: permissive maintenance: abandoned --- # pyffx — pure Python format preserving encryption License: permissive · Maintenance: abandoned · Downloads: 84.0K/mo ## What it is and what it does pyffx is a pure Python implementation of Format-Preserving Encryption (FFX) based on Feistel networks. It lets you encrypt data in a way that preserves its structure: integers encrypt to integers of the same length, and strings encrypt to strings of the same length using the same alphabet. This is useful when you need to encrypt values while keeping them compatible with systems that expect a specific format. The package implements only method 2 of the FFX specification. It has no external runtime dependencies, making it straightforward to install, but it has been unmaintained since 2019. The lack of recent updates means it may not be compatible with the latest Python versions, and any cryptographic improvements or security patches will not be applied. Use it for: - Encrypt credit card or account numbers while keeping them as numeric strings for legacy database systems - Tokenize personally identifiable data (PII) while preserving format for analytics or reporting - Encrypt database values in-place without changing column types or data structure - Generate format-compliant encrypted identifiers for APIs or external systems ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. pyffx implements Format-Preserving Encryption (FFX) using Feistel-based methods, allowing you to encrypt data while preserving its format—integers stay integers, strings stay strings of the same length and alphabet. No. The package is abandoned (last update 2019) with no maintenance signal, making it unsuitable for production use. While it has no known vulnerabilities and uses a permissive license, the lack of updates means it will not receive security patches, Python compatibility fixes, or bug corrections. Use only if you are certain the 2019 codebase works with your Python version and you accept the risk of unmaintained cryptographic code. ## Install pip install pyffx uv add pyffx poetry add pyffx ## Installing pyffx Before you install: Installation friction is high; the package has been abandoned since 2019 with no recent maintenance. Last commit was 2019-05-12, over six years ago. No runtime dependencies ease installation, but the lack of active maintenance means security updates and Python compatibility fixes are unlikely. License in practice: Licensed under MIT License (permissive), so you can use, modify, and distribute pyffx with minimal restrictions—suitable for both open and closed projects as long as you include the license notice. Quickstart: import pyffx e = pyffx.Integer(b'secret-key', length=4) encrypted = e.encrypt(1234) decrypted = e.decrypt(encrypted) Verify before relying: - Whether the package works reliably with modern Python versions (3.10+) given the last release was 2019 - Whether FFX method 2 implementation meets current cryptographic standards and best practices - Real-world performance characteristics and whether format preservation is suitable for your security model ## Package facts - License: MIT License (permissive) - Python support: unspecified - Install friction: high - Maintenance: abandoned - Downloads: 84.0K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags format preserving encryption, feistel cipher, ffx encryption, encrypt integers strings, format-preserving cryptography, data format encryption, reversible encryption same format, encryption, format-preserving, abandoned [View on SkillFed](https://skillfed.io/packages/pyffx) · [View on PyPI](https://pypi.org/project/pyffx/)