pyffx
pure Python format preserving encryption
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
MIT License (permissive) — 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.
last release 2019-05-12 (2651 days) · last repo commit 2019-05-12 · 55 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 83,991 downloads/mo, #14,036 on PyPI
Alternatives
Verify before relying
import pyffx
e = pyffx.Integer(b'secret-key', length=4)
encrypted = e.encrypt(1234)
decrypted = e.decrypt(encrypted)- 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
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 on this page. Verify before relying on it.
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
pyffx on PyPI
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 | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,651 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 83,991 / month, #14,036 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 2.7Programming Language :: Python :: 3 |
Evidence: pyffx-0.3.0.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “format preserving encryption”
- pyffxpyffx implements Format-Preserving Encryption (FFX) using…
- ff3Implements NIST FF3 and FF3-1 format-preserving encryption (FPE)…
- pyAesCryptEncrypts and decrypts files and binary streams using AES256-CBC,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Cryptography packages
Certifi provides Mozilla's curated collection of root SSL certificates for Python applications to validate TLS hosts and verify certificate trustworthiness.
cryptography provides cryptographic recipes and low-level primitives for symmetric encryption, message digests, key derivation, and other common cryptographic algorithms in Python.
Pure-Python RSA encryption, decryption, signing, and key generation following PKCS#1 v1.5, with command-line and library interfaces.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
Provides Microsoft Entra ID token-based authentication for Azure SDK clients through a set of TokenCredential implementations that handle OAuth flows and managed identity support.
PyNaCl provides Python bindings to libsodium for digital signatures, secret-key and public-key encryption, hashing, message authentication, and password-based key derivation.
See also ff3 · pyDes · aes-pkcs5 · py3rijndael · pyaes · pyAesCrypt · crypto · fernet · PyPDF4 · django-cryptography-django5