For a python library for data encryption, the strongest matches are pyca/cryptography (This library is the industry-standard toolkit for Python, providing), google/tink (Tink provides a robust, high-level cryptographic toolkit that handles) and pyca/bcrypt (This library provides a secure, industry-standard implementation of the). pyca/pynacl and google/end-to-end round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best python encryption libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
This project is a Python cryptography library that provides a collection of cryptographic primitives and high-level recipes for implementing secure encryption and authentication. It functions as a symmetric encryption toolkit and a cryptographic hash provider, offering both a low-level cryptographic interface for building custom protocols and high-level tools for securing data. The library covers a broad range of security capabilities, including symmetric data encryption, the derivation of cryptographic keys from passwords or secret values, and data integrity verification through the generati
This library is the industry-standard toolkit for Python, providing both high-level recipes and low-level primitives that cover all requested features including authenticated encryption, asymmetric cryptography, and key derivation, all backed by high-performance C extensions.
Tink is a multi-language cryptography library and security toolkit providing secure APIs for data encryption and digital signatures. It functions as a data encryption library and digital signature framework designed to prevent common implementation errors across different platforms and operating systems. The project serves as a cryptographic keyset manager, utilizing JSON for the storage, rotation, and serialization of keys to maintain consistency across various programming languages. It ensures identical cryptographic behavior globally by mapping language-specific libraries to a unified set
Tink provides a robust, high-level cryptographic toolkit that handles authenticated encryption and digital signatures across multiple languages, though it is primarily implemented in Java with Python bindings rather than being a native Python-first library.
Modern(-ish) password hashing for your software and your servers
This library provides a secure, industry-standard implementation of the bcrypt password hashing algorithm, which is a specific but essential component of a broader cryptographic toolkit.
Python binding to the Networking and Cryptography (NaCl) library
This library provides Python bindings for the high-performance libsodium library, offering robust implementations of authenticated encryption, digital signatures, and key derivation that are widely considered a standard for secure Python development.
This project is an OpenPGP cryptography library designed for encrypting, decrypting, and signing messages according to the OpenPGP standard for secure communication. It functions as an asymmetric encryption toolkit for securing data and managing digital identities through cryptographic operations. The library provides a cryptographic key manager to create and handle the public and private key pairs required for identity operations. It includes a digital signature implementation to ensure message authenticity and data integrity. The system covers a broad range of capabilities, including asymm
This is a JavaScript library for OpenPGP operations, which does not meet the requirement for a Python-based cryptography library.
Crypto++ is a comprehensive C++ cryptographic library that implements a broad range of algorithms for symmetric and asymmetric encryption, hashing, and digital signatures. It is designed as a portable toolkit, usable across different operating systems without modification. The library distinguishes itself through its architecture: cryptographic parameters such as key size and mode are configured at compile time via C++ templates, eliminating runtime overhead. Algorithms are registered in a static factory for runtime lookup, while data processing follows a pipeline model of composable sources,
This is a C++ library rather than a Python library, serving as a low-level cryptographic toolkit that would require external bindings to be used within a Python application.
Ring is a low-level cryptographic primitive library and security toolset designed for building portable, secure applications. It provides a collection of implementations for RSA, elliptic curve cryptography, and authenticated symmetric encryption. The project focuses on constant-time cryptography to prevent secret data from leaking through timing side-channel attacks. It utilizes a formal verification tool that generates arithmetic logic from templates, ensuring mathematical correctness and eliminating manual implementation errors. The library includes capabilities for producing cryptographi
This is a low-level cryptographic primitive library written in Rust and Assembly, which serves as a foundational building block rather than a Python-native library for implementing security in Python applications.
Libsodium is a portable, C-based cryptographic library that provides a collection of modern primitives for encryption, decryption, digital signatures, password hashing, and secure key exchange. It is designed to facilitate secure communication and data integrity across diverse hardware architectures and operating systems. The library distinguishes itself by utilizing constant-time primitive execution to prevent side-channel attacks and employing memory-hard algorithms to increase the difficulty of brute-force password attacks. It abstracts complex mathematical operations into simplified inter
This is a high-performance C library for cryptographic primitives rather than a Python-native library, meaning you would need to use a wrapper or binding to utilize it within a Python application.
This is a cryptographic implementation of the Argon2 memory-hard function, serving as a password hashing library and key derivation function. It transforms passwords and salts into secure hashes and generates cryptographic keys designed to resist high-speed hardware cracking attacks. The library utilizes a memory-hard design that requires significant RAM to prevent acceleration via GPUs or ASICs. It incorporates data-independent memory access to block side-channel timing attacks and supports the integration of secret keys or peppers to protect against brute-force attacks on compromised salts.
This is a specialized library for the Argon2 password hashing and key derivation function, which serves as a single-aspect building block rather than a comprehensive cryptography library covering the full suite of required features like asymmetric encryption and digital signatures.
This library provides a collection of low-level mathematical primitives for Curve25519 and Ristretto group operations. It serves as a foundation for building secure cryptographic protocols, offering tools for elliptic curve arithmetic, key exchange, and digital signature generation. The implementation prioritizes side-channel resistance by utilizing constant-time arithmetic logic across all operations, ensuring that secret-dependent timing variations are prevented. It leverages the Rust type system to enforce state validity, making illegal group elements unrepresentable at compile time. To ma
This is a low-level Rust library for elliptic curve primitives rather than a Python cryptography library, making it a building block for developers to implement their own cryptographic protocols rather than a ready-to-use Python tool.
Stegcloak is a unicode steganography library and text-based data concealment tool. It provides a toolkit for hiding encrypted, compressed secret messages within standard text strings by mapping binary data to invisible, non-printing Unicode characters. The project combines a symmetric encryption toolkit with an invisible character encoder to ensure secure data concealment. It utilizes password-based key stretching and authenticated symmetric encryption to protect hidden payloads from unauthorized access and tampering. The system covers the full steganography workflow, including payload compr
This project is a specialized steganography tool for hiding data within text rather than a general-purpose Python cryptography library for implementing standard security primitives.
BLAKE3 is a high-performance implementation of the BLAKE3 cryptographic hash algorithm used for calculating secure data digests and fingerprints. It functions as a parallel cryptographic hash tool that distributes workloads across multiple processor threads to process large datasets rapidly. The project provides specialized tools for keyed hashing and the generation of message authentication codes. It also includes functionality for cryptographic key derivation, allowing the creation of unique secret sub-keys from a master key and context strings. The implementation supports data integrity v
This repository provides a high-performance implementation of the BLAKE3 hash algorithm and key derivation functions, but it is a specialized hashing tool rather than a comprehensive cryptography library that includes asymmetric encryption and digital signatures.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| pyca/cryptography | 7.6K | Python | NOASSERTION | |
| google/tink | 13.5K | Java | Apache-2.0 | |
| pyca/bcrypt | 1.5K | Python | Apache-2.0 | |
| pyca/pynacl | 1.2K | C | Apache-2.0 | |
| google/end-to-end | 4.1K | JavaScript | Apache-2.0 | |
| weidai11/cryptopp | 5.4K | C++ | other | |
| briansmith/ring | 4.1K | Assembly | NOASSERTION | |
| jedisct1/libsodium | 13.5K | C | other | |
| p-h-c/phc-winner-argon2 | 5.3K | C | NOASSERTION | |
| dalek-cryptography/curve25519-dalek | 1.2K | Rust | NOASSERTION |