ppdeep
Pure-Python library for computing fuzzy hashes (ssdeep)
Decision gist · record as of 2026-08-14
Yes. ppdeep is actively maintained, has no dependencies, installs easily, carries no known vulnerabilities, and uses a permissive license. It fills a specific and legitimate need in forensics and malware analysis. Install it if you need fuzzy hashing; skip it if you only need exact-match hashing or cryptographic digests.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with no runtime dependencies.
- Actively maintained as of 2026-02-21 with recent commits and a small but engaged user base.
License · maintenance · safety
ASL 2.0 (permissive) — Licensed under Apache Software License (ASL 2.0), a permissive license allowing commercial and private use with minimal restrictions.
last release 2026-02-21 (174 days) · last repo commit 2026-02-21 · 53 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 75,317 downloads/mo, #14,728 on PyPI
Alternatives
Verify before relying
pip install ppdeep
import ppdeep
h1 = ppdeep.hash('The equivalence of mass and energy translates into the well-known E = mc²')
h2 = ppdeep.hash('The equivalence of mass and energy translates into the well-known E = MC2')
similarity = ppdeep.compare(h1, h2) # Returns 0-100 similarity score- Whether the package handles very large files efficiently or has memory constraints for hash_from_file().
- Performance characteristics compared to the original ssdeep tool or other fuzzy hashing implementations.
What it is and what it does
ppdeep is a pure-Python implementation of fuzzy hashing (CTPH), a technique for determining whether two inputs are similar rather than identical. It provides three main functions: hash() to compute a fuzzy hash from a string, compare() to measure similarity between two hashes on a 0-100 scale, and hash_from_file() to hash file contents directly. The library has no external runtime dependencies and works across operating systems.
Fuzzy hashing is commonly used in digital forensics and malware detection to identify related files or data that may have been slightly modified. The implementation is based on SpamSum by Dr. Andrew Tridgell and follows the ssdeep algorithm, making it compatible with the fuzzy hash format produced by the popular ssdeep tool.
Use it for
- Detect similar malware samples that have been slightly modified or repackaged.
- Identify related files in digital forensics investigations where exact matching is too strict.
- Compare document or data versions to find near-duplicates in large datasets.
- Build similarity-based deduplication systems for file storage or backup.
- Analyze suspicious files by comparing their fuzzy hashes against known malicious samples.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
ppdeep is actively maintained, has no dependencies, installs easily, carries no known vulnerabilities, and uses a permissive license. It fills a specific and legitimate need in forensics and malware analysis. Install it if you need fuzzy hashing; skip it if you only need exact-match hashing or cryptographic digests.
Install
ppdeep on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained as of 2026-02-21 with recent commits and a small but engaged user base.
License in practice
Licensed under Apache Software License (ASL 2.0), a permissive license allowing commercial and private use with minimal restrictions.
Quickstart
pip install ppdeep
import ppdeep
h1 = ppdeep.hash('The equivalence of mass and energy translates into the well-known E = mc²')
h2 = ppdeep.hash('The equivalence of mass and energy translates into the well-known E = MC2')
similarity = ppdeep.compare(h1, h2) # Returns 0-100 similarity score
Verify before relying
- Whether the package handles very large files efficiently or has memory constraints for hash_from_file().
- Performance characteristics compared to the original ssdeep tool or other fuzzy hashing implementations.
Package facts
| License | ASL 2.0 permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 174 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 75,317 / month, #14,728 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: ppdeep-20260221-py3-none-any.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 › “fuzzy hash computation”
- ppdeepppdeep computes fuzzy hashes (CTPH/ssdeep) to measure similarity…
- py-tlshGenerates locality-sensitive hashes for fuzzy matching of binary…
- py-multihashEncodes and decodes multihash digests, supporting 125+ hash functions…
Give your agent the search over MCP, or paste the wish link into any chat.
More Security packages
Provides Python bindings to the FreeDesktop.org Secret Service API for securely storing and retrieving passwords and secrets through GNOME Keyring, KWallet, or KeePassXC.
MSAL for Python handles OAuth2 and OpenID Connect authentication with Microsoft identity services, managing token acquisition, caching, and refresh for applications integrating with Microsoft Entra ID, Microsoft Accounts, and Azure AD B2C.
joserfc implements JOSE standards (JWS, JWE, JWK, JWT, and related RFCs) for signing, encrypting, and managing JSON-based cryptographic tokens in Python.
Authlib provides a complete implementation of OAuth 1.0, OAuth 2.0, and OpenID Connect 1.0 for building both authentication clients and servers, with built-in support for JWS, JWK, JWA, and JWT standards.
Provides low-level CFFI bindings to the official Argon2 password hashing algorithm for use by libraries and applications that need direct access to Argon2 without higher-level abstractions.
ADAL for Python authenticates applications with Azure Active Directory to obtain tokens for accessing Azure AD-protected resources.
Install only if maintaining existing code that already depends on it, and plan a migration.
See also py-tlsh · ImageHash · simhash · filehash · ngram · dirhash · siphash · pysimstring · pyfarmhash · spookyhash