xxtea
xxtea is a simple block cipher
Decision gist · record as of 2026-08-14
Yes, if you need XXTEA specifically for legacy compatibility or cross-platform communication. The package is actively maintained, has no known vulnerabilities, supports modern Python versions (3.9–3.15), and offers prebuilt wheels for easy installation. However, be aware that its non-standard padding makes output incompatible with other XXTEA libraries; use only if interoperability with this specific implementation is required. For new projects, consider modern alternatives like cryptography or nacl.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Key must be exactly 16 bytes; data length must be a multiple of 4 bytes and at least 8 bytes when padding=False is used.
- Medium install friction due to compiled C extension wheels; however, prebuilt wheels are available for Python 3.9–3.15 across major platforms (Linux, macOS, Windows) and architectures, reducing build barriers.
- Active maintenance with recent release.
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause is permissive; you may use, modify, and distribute this package freely in proprietary or open-source projects with minimal restrictions, provided you retain the license notice.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 30 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 275,811 downloads/mo, #8,171 on PyPI
Alternatives
Verify before relying
import os
import xxtea
key = os.urandom(16) # 16-byte key required
data = b"xxtea is good"
enc = xxtea.encrypt(data, key)
dec = xxtea.decrypt(enc, key)
assert data == dec
# Or use the XXTEA type for reusable cipher
cipher = xxtea.XXTEA(key)
enc2 = cipher.encrypt(data)
dec2 = cipher.decrypt(enc2)- Compatibility with other XXTEA implementations outside this library (non-standard padding may limit interoperability).
- Performance characteristics compared to other Python encryption libraries for typical use cases.
- Whether the free-threading support (Python 3.13+) has been tested in production multi-threaded scenarios.
What it is and what it does
xxtea is a compiled Python extension wrapping the XXTEA symmetric block cipher algorithm. It takes a 128-bit (16-byte) key and encrypts or decrypts data in 32-bit word blocks. The package handles byte-to-word conversions automatically and applies a non-standard 4-byte block PKCS#7 padding by default to ensure input data meets XXTEA's requirement of at least 2 words (8 bytes) and a multiple of 4 bytes. This means you can encrypt arbitrary binary data of any length without manual padding.
The module exports four module-level functions—encrypt(), decrypt(), encrypt_hex(), and decrypt_hex()—plus an XXTEA class for creating reusable cipher objects that store the key, padding mode, and round count. Rounds default to 6 + 52/n (where n is the number of 32-bit words), but can be overridden. The non-standard padding scheme makes output incompatible with other XXTEA implementations; use padding=False for raw XXTEA if interoperability is required, though this imposes strict data-length constraints.
Use it for
- Encrypt sensitive binary data (credentials, tokens, session data) in Python applications where XXTEA compatibility is needed.
- Implement legacy system integration where XXTEA is the mandated cipher for cross-platform communication.
- Encrypt arbitrary-length byte strings without manual padding logic by relying on the built-in PKCS#7 scheme.
- Create reusable cipher objects for batch encryption/decryption of multiple messages with the same key and settings.
- Hex-encode encrypted output for storage or transmission in text-based formats (databases, logs, APIs).
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need XXTEA specifically for legacy compatibility or cross-platform communication.
The package is actively maintained, has no known vulnerabilities, supports modern Python versions (3.9–3.15), and offers prebuilt wheels for easy installation. However, be aware that its non-standard padding makes output incompatible with other XXTEA libraries; use only if interoperability with this specific implementation is required. For new projects, consider modern alternatives like cryptography or nacl.
Install
xxtea on PyPI
Before you install
Medium install friction due to compiled C extension wheels; however, prebuilt wheels are available for Python 3.9–3.15 across major platforms (Linux, macOS, Windows) and architectures, reducing build barriers. Active maintenance with recent release.
Key must be exactly 16 bytes; data length must be a multiple of 4 bytes and at least 8 bytes when padding=False is used.
License in practice
BSD-2-Clause is permissive; you may use, modify, and distribute this package freely in proprietary or open-source projects with minimal restrictions, provided you retain the license notice.
Quickstart
import os
import xxtea
key = os.urandom(16) # 16-byte key required
data = b"xxtea is good"
enc = xxtea.encrypt(data, key)
dec = xxtea.decrypt(enc, key)
assert data == dec
# Or use the XXTEA type for reusable cipher
cipher = xxtea.XXTEA(key)
enc2 = cipher.encrypt(data)
dec2 = cipher.decrypt(enc2)
Verify before relying
- Compatibility with other XXTEA implementations outside this library (non-standard padding may limit interoperability).
- Performance characteristics compared to other Python encryption libraries for typical use cases.
- Whether the free-threading support (Python 3.13+) has been tested in production multi-threaded scenarios.
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 275,811 / month, #8,171 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 :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: 3.9Programming Language :: Python :: Free Threading :: 1 - Unstable |
Evidence: xxtea-5.3.3-cp310-cp310-macosx_10_9_x86_64.whl; xxtea-5.3.3-cp310-cp310-macosx_11_0_arm64.whl; xxtea-5.3.3-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; xxtea-5.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; xxtea-5.3.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; xxtea-5.3.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl; xxtea-5.3.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl; xxtea-5.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; xxtea-5.3.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_aarch64.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_armv7l.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_i686.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_ppc64le.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_riscv64.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_s390x.whl; xxtea-5.3.3-cp310-cp310-musllinux_1_2_x86_64.whl; xxtea-5.3.3-cp310-cp310-win32.whl; xxtea-5.3.3-cp310-cp310-win_amd64.whl; xxtea-5.3.3-cp310-cp310-win_arm64.whl; xxtea-5.3.3-cp311-cp311-macosx_10_9_x86_64.whl
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 › “xxtea encryption decryption”
- xxteaxxtea is a Python extension that implements the XXTEA block cipher…
- pyragepyrage provides Python bindings to the Rust implementation of age,…
- kasa-cryptProvides fast encryption and decryption functions for JSON and other…
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 twofish · aes-pkcs5 · pyDes · pyaes · aws-encryption-sdk · kasa-crypt · http-ece · pyhpke · unpaddedbase64 · eciespy