Cryptographic library for Python
Project description
PyCryptodome is a self-contained Python package of low-level cryptographic primitives.
It supports Python 2.6 and 2.7, Python 3.4 and newer, and PyPy.
You can install it with:
pip install pycryptodome
All modules are installed under the Crypto package.
Check the pycryptodomex project for the equivalent library that works under the Cryptodome package.
PyCryptodome is a fork of PyCrypto. It brings several enhancements with respect to the last official version of PyCrypto (2.6.1), for instance:
Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
Accelerated AES on Intel platforms via AES-NI
First class support for PyPy
Elliptic curves cryptography (NIST P-256, P-384 and P-521 curves only)
Better and more compact API (nonce and iv attributes for ciphers, automatic generation of random nonces and IVs, simplified CTR cipher mode, and more)
SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms
Salsa20 and ChaCha20 stream ciphers
scrypt and HKDF
Deterministic (EC)DSA
Password-protected PKCS#8 key containers
Shamir’s Secret Sharing scheme
Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace)
Simplified install process, including better support for Windows
Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
Major clean ups and simplification of the code base
PyCryptodome is not a wrapper to a separate C library like OpenSSL. To the largest possible extent, algorithms are implemented in pure Python. Only the pieces that are extremely critical to performance (e.g. block ciphers) are implemented as C extensions.
For more information, see the homepage.
All the code can be downloaded from GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pycryptodome-3.9.9-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e89bb3826e6f84501e8e3b205c22595d0c5492c2f271cbb9ee1c48eb1866645 |
|
MD5 | 4d6ed3448a424932b524079c9ec4fec3 |
|
BLAKE2b-256 | 4d988257e5386e29cc86c50fd89991e0ec2859a623cf87e89c16a2dd613ec64e |
Hashes for pycryptodome-3.9.9-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a199e9ca46fc6e999e5f47fce342af4b56c7de85fae893c69ab6aa17531fb1e1 |
|
MD5 | 1decf655e067516277e51d5a68e24a91 |
|
BLAKE2b-256 | cf3a6ac93fef386ccd7c61540353297f25c58905ee8a3b3dc0eac60e5d8dad4d |
Hashes for pycryptodome-3.9.9-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4e6b269a8ddaede774e5c3adbef6bf452ee144e6db8a716d23694953348cd86 |
|
MD5 | 4bcd0ec7d6a44e2a11b65114c2ce1cf3 |
|
BLAKE2b-256 | 267e394c58c71141a78a2f1b50e7a93747f7a7a96502de4ff2dc9873ad894306 |
Hashes for pycryptodome-3.9.9-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4599c0ca0fc027c780c1c45ed996d5bef03e571470b7b1c7171ec1e1a90914c |
|
MD5 | e1cbd5039429ba4d9387128adb90c029 |
|
BLAKE2b-256 | 4d59ba86bbdccba29e7138fe9d5f4f8987625bf7b81b1545df568517e1a36dc4 |
Hashes for pycryptodome-3.9.9-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a68df525b387201a43b27b879ce8c08948a430e883a756d6c9e3acdaa7d7bd8 |
|
MD5 | 9913f7b324eeef116e48bdf9e095c7ed |
|
BLAKE2b-256 | f958372bdbbddf3b680cdaf3e8230b4f6acd8e35fd84e518c87c4c6e44f28f86 |
Hashes for pycryptodome-3.9.9-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e4227849e4231a3f5b35ea5bdedf9a82b3883500e5624f00a19156e9a9ef861 |
|
MD5 | 03e6fefa44e70b1e1250a3643e9cf536 |
|
BLAKE2b-256 | 0f3997e8e2ee68a116d8025283238bac1250a78cc5e4fdb9b5f3153102a09951 |
Hashes for pycryptodome-3.9.9-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76b1a34d74bb2c91bce460cdc74d1347592045627a955e9a252554481c17c52f |
|
MD5 | 9ae8428d47bc6560ca063ec2e02f09c8 |
|
BLAKE2b-256 | 91d5e8e0374f10cbb12fb6d41af6ba939f85a53bd34dda28e4ca9253ab43c1b4 |
Hashes for pycryptodome-3.9.9-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c3c4865730dfb0263f822b966d6d58429d8b1e560d1ddae37685fd9e7c63161 |
|
MD5 | 3d447ceb7eea94b9e81c1555a8a00e47 |
|
BLAKE2b-256 | f265923ad2153668d8ef2afd324b10c4a78bac560cd463a8f0d6ecae0238e4dd |
Hashes for pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e15bde67ccb7d4417f627dd16ffe2f5a4c2941ce5278444e884cb26d73ecbc61 |
|
MD5 | 5c4db9acf5112842f35ea52586241623 |
|
BLAKE2b-256 | 0a940a2dbcdff4b409e1eaacba95593b25e5eaec05237fccdeaf1c154b2771e4 |
Hashes for pycryptodome-3.9.9-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7ec2bd8f57c559dd24e71891c51c25266a8deb66fc5f02cc97c7fb593d1780a |
|
MD5 | 3b088f01956b527b9f9dae1bd079807a |
|
BLAKE2b-256 | 2d59b37ecb399a9a4cad74134870a2aa00612bbaa2943e6cba00722c526bf3bb |
Hashes for pycryptodome-3.9.9-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27397aee992af69d07502126561d851ba3845aa808f0e55c71ad0efa264dd7d4 |
|
MD5 | e012184e2ab5a08916353403c020ba59 |
|
BLAKE2b-256 | 81f2f1da3fcdf77fec4abf3d1b6914c6e6768a22b14e4f67c8a3ad3e577629ac |
Hashes for pycryptodome-3.9.9-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70d807d11d508433daf96244ec1c64e55039e8a35931fc5ea9eee94dbe3cb6b5 |
|
MD5 | c3f49b1c05fd5cf84148d3da31ea3a9d |
|
BLAKE2b-256 | e4750f50fc7c8274240349732c6e8b32d444ddff5000e2a53e149829c53d30f2 |
Hashes for pycryptodome-3.9.9-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 834b790bbb6bd18956f625af4004d9c15eed12d5186d8e57851454ae76d52215 |
|
MD5 | 43c26b4b2ad263308da4244011d2b6db |
|
BLAKE2b-256 | 134b7e74b54b3571faec323a32bb9fb562b9335c2ae051c2d945c1cbdeb95221 |
Hashes for pycryptodome-3.9.9-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62c488a21c253dadc9f731a32f0ac61e4e436d81a1ea6f7d1d9146ed4d20d6bd |
|
MD5 | 4581ae502774d85f63dcd6ee34325e59 |
|
BLAKE2b-256 | 2f9bb9c98400bab6d2188781b89ee20a479d7f54877f70167edc1090ed918356 |
Hashes for pycryptodome-3.9.9-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | faa682c404c218e8788c3126c9a4b8fbcc54dc245b5b6e8ea5b46f3b63bd0c84 |
|
MD5 | 2fcd94d2125a442e123338058db2cfa0 |
|
BLAKE2b-256 | aa36f97c4b16619618e169b9e0d687eab78868c7474ff8c1ec6f584a8b10b29b |
Hashes for pycryptodome-3.9.9-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9000877383e2189dafd1b2fc68c6c726eca9a3cfb6d68148fbb72ccf651959b6 |
|
MD5 | e753d5ebaf333fb384c7ca37f1fb3c8c |
|
BLAKE2b-256 | 142df644415f1e86030330cd56927c2bc7be4a1fe4d9624ed81db54befdf30f5 |
Hashes for pycryptodome-3.9.9-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ed27951b0a17afd287299e2206a339b5b6d12de9321e1a1575261ef9c4a851b |
|
MD5 | 1f7553c5db9d8ac966258be9520d9d99 |
|
BLAKE2b-256 | beef484a33589a7b8bfbeb02d3eb28308217087e3de768520e0a8af5631cea1c |
Hashes for pycryptodome-3.9.9-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60febcf5baf70c566d9d9351c47fbd8321da9a4edf2eff45c4c31c86164ca794 |
|
MD5 | 81cfd2e9a9104aead63fbedadeecd50d |
|
BLAKE2b-256 | 5ddbd6ffeda52c748373a3a19bb16c449990655064bc84982086b0f0657887af |
Hashes for pycryptodome-3.9.9-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b68794fba45bdb367eeb71249c26d23e61167510a1d0c3d6cf0f2f14636e62ee |
|
MD5 | 2ca31c70ad7aec5742fb71612db81ab1 |
|
BLAKE2b-256 | 2845cbedf90ac99c9f39ea854eb7d763924beda1f42e75771641b60fced43ce9 |
Hashes for pycryptodome-3.9.9-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 843e5f10ecdf9d307032b8b91afe9da1d6ed5bb89d0bbec5c8dcb4ba44008e11 |
|
MD5 | c15be6a116adf354270e2e6201dd3504 |
|
BLAKE2b-256 | 0c947d6729c9079e076239830cafabed69eb6759ef7952824f272cf7ed333cb8 |
Hashes for pycryptodome-3.9.9-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46e96aeb8a9ca8b1edf9b1fd0af4bf6afcf3f1ca7fa35529f5d60b98f3e4e959 |
|
MD5 | b4a54823e187253e1edf708c28c10ead |
|
BLAKE2b-256 | 2b6f7e38d7c97fbbc3987539c804282c33f56b6b07381bf2390deead696440c5 |
Hashes for pycryptodome-3.9.9-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7798e73225a699651888489fbb1dbc565e03a509942a8ce6194bbe6fb582a41f |
|
MD5 | 90a3b8c0d4ad1ab0107ea718f60a91e7 |
|
BLAKE2b-256 | 85c531fafd05d4dff8486bc7989fb3138ebf02d73c825712d3688d160a9ef7cc |
Hashes for pycryptodome-3.9.9-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f9f84059039b672a5a705b3c5aa21747867bacc30a72e28bf0d147cc8ef85ed |
|
MD5 | 4cc6cf9ec02fe45f47421c8091497958 |
|
BLAKE2b-256 | 3f016f6f07bd0ffead8770b682266aa34302ac836e05f2bf6963fccbc9b942bf |
Hashes for pycryptodome-3.9.9-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b830fae2a46536ee830599c3c4af114f5228f31e54adac370767616a701a99dc |
|
MD5 | f262de479af0e73a7742f57af52d2209 |
|
BLAKE2b-256 | 07997e9b4e55b39cd5b596156786c3a56bc80238476ba1508321ad3e1091150c |
Hashes for pycryptodome-3.9.9-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b17b0ad9faee14d6318f965d58d323b0b37247e1e0c9c40c23504c00f4af881e |
|
MD5 | 46066c734f4d6cb04e4c5359ccde68ab |
|
BLAKE2b-256 | 1d2fb7d3a8fb6933d77d930e565302a0bbe976e9719d15d7f59347b2c5807963 |
Hashes for pycryptodome-3.9.9-cp35-cp35m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411745c6dce4eff918906eebcde78771d44795d747e194462abb120d2e537cd9 |
|
MD5 | 12aa681efb9582dfa614caba86f25334 |
|
BLAKE2b-256 | 719432063862e71dad709d5dae5653acbf70e17011adf2ded42e5445fc3b822d |
Hashes for pycryptodome-3.9.9-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb01f9997e4d6a8ec8a1ad1f676ba5a362781ff64e8189fe2985258ba9cb9706 |
|
MD5 | 9cd75dfe95b4c79409da377a113b866a |
|
BLAKE2b-256 | 49e0d70332ec5c1b5b82d27468cf97a87da7c85b7e60edc9a9afd36648a29290 |
Hashes for pycryptodome-3.9.9-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 946399d15eccebafc8ce0257fc4caffe383c75e6b0633509bd011e357368306c |
|
MD5 | d619723ecc690ac4af0ad9cecd2c3d70 |
|
BLAKE2b-256 | 2021d2128d718b8f5f39bcdab79f457de0fe0c76ac2bcf82919c236e4e28ffd2 |
Hashes for pycryptodome-3.9.9-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d3baaf82681cfb1a842f1c8f77beac791ceedd99af911e4f5fabec32bae2259 |
|
MD5 | d8f59bf7ebe9621b27944744edaa5296 |
|
BLAKE2b-256 | 2f062c2ca574ed690e08483eb15d4ea673054624fa20109d31624fc1ad002ccf |
Hashes for pycryptodome-3.9.9-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21ef416aa52802d22b9c11598d4e5352285bd9d6b5d868cde3e6bf2b22b4ebfb |
|
MD5 | 5056f5a5e1161c5006318096a4ad0de4 |
|
BLAKE2b-256 | 312cecfa731de8ec897f2e0e7fda747c26a9a8653bbb14bc486ae51d01822d37 |
Hashes for pycryptodome-3.9.9-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f381036287c25d9809a08224ce4d012b7b7d50b6ada3ddbc3bc6f1f659365120 |
|
MD5 | 17018f1bb931ac6e63ce4829639f5ce1 |
|
BLAKE2b-256 | 3f64c096ccf34ed329c4a17cce65d38aa8b598e5f1e9275f53520cf3e68bfd53 |
Hashes for pycryptodome-3.9.9-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28f75e58d02019a7edc7d4135203d2501dfc47256d175c72c9798f9a129a49a7 |
|
MD5 | f0b94e62892b6346e1758653128d6a2d |
|
BLAKE2b-256 | ec5b116340a6c120457dc6d9225d6c03b16f947e311bf58899d44d4febb2c2db |
Hashes for pycryptodome-3.9.9-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19cb674df6c74a14b8b408aa30ba8a89bd1c01e23505100fb45f930fbf0ed0d9 |
|
MD5 | 036e7a3851de75b653205f2bce352ea5 |
|
BLAKE2b-256 | 4ea90c277896d1d9aff98cdd8b4cac681d682eca6940e1086ff49dcf21616559 |
Hashes for pycryptodome-3.9.9-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50826b49fbca348a61529693b0031cdb782c39060fb9dca5ac5dff858159dc5a |
|
MD5 | e5b2c0a470f46d718bdb3042e5c688eb |
|
BLAKE2b-256 | 8583759e7ac71844463d248d5d3ba491ea4c2c8710a4950efac7d4aead0b9cc0 |
Hashes for pycryptodome-3.9.9-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3d8a9efa213be8232c59cdc6b65600276508e375e0a119d710826248fd18d37 |
|
MD5 | 45db840c567d78c4bb304483398c8970 |
|
BLAKE2b-256 | 6be5bb904d47b6640f42a11a54b20e7c25bebe94b6d797ab2e540c508f9c1c99 |
Hashes for pycryptodome-3.9.9-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f19e6ef750f677d924d9c7141f54bade3cd56695bbfd8a9ef15d0378557dfe4 |
|
MD5 | 96debc111bce458b675abf60f39d1c03 |
|
BLAKE2b-256 | c70a338ab394b6e1caee331c9f785be771d23bd335839c66ca72e5e3c3ac62dd |
Hashes for pycryptodome-3.9.9-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cfdb92dca388e27e732caa72a1cc624520fe93752a665c3b6cd8f1a91b34916 |
|
MD5 | 60c6e273aeb2de61e16e1423c0fc41d7 |
|
BLAKE2b-256 | ae46e8a2445b1a4540639f749c9ffc2ef2fc988b9e7423c91466cc47a36a9899 |
Hashes for pycryptodome-3.9.9-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5598dc6c9dbfe882904e54584322893eff185b98960bbe2cdaaa20e8a437b6e5 |
|
MD5 | d2e5dbba8ec95e9cd76a46ca3ccd6aae |
|
BLAKE2b-256 | ba82bff32db7ffab087ee19c6ff54f147cac0688f0e606eba0ea902ddabe864b |