For a python library for cryptographic operations, 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 API that handles) and pyca/bcrypt (This library provides a secure, industry-standard implementation of the). pyca/pynacl and dalek-cryptography/curve25519-dalek 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 cryptography 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 low-level primitives and high-level recipes for symmetric encryption, hashing, key derivation, and digital signatures.
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 API that handles symmetric encryption, digital signatures, and key management, though it is primarily a multi-language framework rather than a Python-native 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 secure, high-level bindings to the libsodium library, offering robust implementations of symmetric encryption, public-key cryptography, and digital signatures for Python applications.
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 library, making it a building block for cryptographic implementations rather than the high-level Python tool requested.
This is a symmetric cryptography library written in C that provides a portable implementation of the Advanced Encryption Standard. It functions as a block cipher implementation supporting 128, 192, and 256 bit key sizes for encrypting and decrypting data. The library includes an AES cipher mode provider that supports electronic codebook, cipher block chaining, and counter modes. These operational modes are decoupled from the core block transformation to allow for different encryption patterns. The implementation utilizes static memory allocation and table-based substitution to avoid dynamic
This is a C-based implementation of the AES block cipher, which serves as a low-level building block rather than the comprehensive Python cryptography library requested.
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 library written in Rust and Assembly rather than a Python library, making it a building block for systems-level security rather than a tool for Python application development.
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 C-based cryptographic library rather than a Python-native library, meaning it would require a wrapper or binding to be used in a Python application.
Signal-Android is an end-to-end encrypted messaging platform designed to ensure that only the sender and recipient can access communication content. The project provides a comprehensive framework for secure, asynchronous message initiation and key agreement, allowing users to establish private channels without requiring simultaneous online presence. It relies on a state machine architecture to manage communication epochs and authentication, ensuring consistent security transitions throughout the messaging lifecycle. The platform distinguishes itself through a hybrid cryptographic approach tha
This is a complete end-to-end encrypted messaging application rather than a general-purpose Python cryptography library, making it an unsuitable tool for implementing custom cryptographic primitives in your own applications.
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 comprehensive C++ cryptographic library, but it does not provide the Python bindings or native Python implementation required for your application.
tiny-AES-c is a lightweight C language cryptography library that provides a symmetric cipher implementation of the Advanced Encryption Standard. It functions as a portable set of functions for encrypting and decrypting data using a shared secret key. The library is designed for embedded system security, enabling cryptographic operations on hardware with limited memory and processing power. It provides these capabilities without relying on large external dependencies. The implementation utilizes a standard C library approach, employing table-based substitution and in-place buffer mutation to
This is a C-based implementation of the AES algorithm designed for embedded systems, which does not provide the Python-native interface or the comprehensive suite of cryptographic protocols required for a Python library.
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.
| 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 | |
| dalek-cryptography/curve25519-dalek | 1.2K | Rust | NOASSERTION | |
| kokke/tiny-aes128-c | 5K | C | Unlicense | |
| briansmith/ring | 4.1K | Assembly | NOASSERTION | |
| jedisct1/libsodium | 13.5K | C | other | |
| signalapp/signal-android | 29K | Kotlin | AGPL-3.0 | |
| weidai11/cryptopp | 5.4K | C++ | other |