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.8.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e59d4e06b0cdb57132387144051101eaa9bbde447b62db9660345d247212ff9 |
|
MD5 | 4fd8ece2e268f7f51ea20c41fb31293e |
|
BLAKE2b-256 | 30139baa64203f5e87acfcb8575aae8256be973b286928374d0ce65f934ccb69 |
Hashes for pycryptodome-3.8.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c54852415567fc53b656b528612d3f8084c127086c38370a2985fbac4892298 |
|
MD5 | 8924769c335e23a2a21b12b4c14bc70e |
|
BLAKE2b-256 | 21f9b46065ff051ff880306fd8e86f44ea6d5c2e68c037e9789e6fa0f328f23f |
Hashes for pycryptodome-3.8.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3d3215c5a3392a6c1f537d38c13e014d93f9b33277048f06c7ede4c6926b8bd |
|
MD5 | 9a933474039ac0bd8b7372589d8fe453 |
|
BLAKE2b-256 | c601f108f9cfb0af904db3d6c318fa4ed7b93f9d914a5c1a71ca46286e3635a8 |
Hashes for pycryptodome-3.8.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99a2f931e1bf87c95e465bc74ef0276ce735f1def575d52b67e117f712a63243 |
|
MD5 | 694d1fa0b01839fab5d190b0aab09180 |
|
BLAKE2b-256 | e0db547f38556c8b56c1cb3946887560b06d4f69d0a3b038a0dcbc3ca79a674f |
Hashes for pycryptodome-3.8.1-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5897e1e336c30274279f23a0f1ea81fdb43c51b514d6ac0f376ff835f420a33e |
|
MD5 | 53a1019c439641147fc35ef9123d63e1 |
|
BLAKE2b-256 | 9202f5d4d739172121a4c6b167f6e8adb3684a4a430660cbdd72a4ede3d3c6d1 |
Hashes for pycryptodome-3.8.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24dc9a6bc59d4e4fb182197327db1e92e15c598729889132195b420dbcc48468 |
|
MD5 | b146a6ee904ced592d1409747cecd029 |
|
BLAKE2b-256 | 38ed6e193f9d080b9a033ee769b49369a1ce64eec9ceb6cfc000e50522cca49a |
Hashes for pycryptodome-3.8.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae4070cfa271f78e9f74cde4f6b8c3869facfa4749b96e9bc7fbd1959d75f167 |
|
MD5 | fb3e6660535e37c833d1e163bf92a783 |
|
BLAKE2b-256 | 61d339d347940c23c55d2473f8d755c8cdc6aaebc631b4a8c134a3f884f5997b |
Hashes for pycryptodome-3.8.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9871164f10b7bc87b88559b66e632528e766fcd0a84324a803860883b51f4c87 |
|
MD5 | 493552a82d7d4c58f7a010d10768203f |
|
BLAKE2b-256 | 06fcb09816d7b2d79d6454f75b40def94a89ed785d8d8d07840563f1084c6ecd |
Hashes for pycryptodome-3.8.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 783cffd29fb0dbf6498bd225c1b7194f8372258166c7585fb777075226b04b64 |
|
MD5 | dc58e8a856dce73088e5393471b67713 |
|
BLAKE2b-256 | 2c09a91aacf54b2b835efea77f5a26613e53216a12e0643a1dcae6fb5ee3e49c |
Hashes for pycryptodome-3.8.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74bd385d89aca3f8860d56caadead5dcb9e1abdf5774739c4aa9fe3cf56bb34f |
|
MD5 | 603475bfd47b5b9f6cdae0011371cde5 |
|
BLAKE2b-256 | 493d5e1766f3a3b6474df395542c903a100da1e46447dfc98d6f723c56abbdc1 |
Hashes for pycryptodome-3.8.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c24117d7fc65f5e299550abd7fa5c612813d0891b4db36d8b8cd02442674306 |
|
MD5 | c65a8855a9a5713a53880ccce46852e8 |
|
BLAKE2b-256 | 09b7c510e58b1cc99cf98fd8fe796116bbed96f4c8737bfe1feeaf362d22c13f |
Hashes for pycryptodome-3.8.1-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68e50aa3230841dc296004e084ceb74225c92da951cff808122242af8a735501 |
|
MD5 | 33cb3717ae944731b61e8880c5105c09 |
|
BLAKE2b-256 | 2b82d7c6bdca0b4c224f1820e64857cc9130f96688fd5ea96672c69bbf4a4180 |
Hashes for pycryptodome-3.8.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a68e85d19a870d8f54d7d78fbdefac640bb694aca216223b5987456cdf4d50ff |
|
MD5 | 5254424ecfc145d5e0148375311fe5a9 |
|
BLAKE2b-256 | 8c076fa824966ac307c0e8844486f01722275275308ed2ad23deaf13cb6862ea |
Hashes for pycryptodome-3.8.1-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04b710f55141c06388aa60d6d4a1d704b79f25b03fa9e61b0b1b9fcf0766e2ea |
|
MD5 | ba0e02502163492dd7135148df264748 |
|
BLAKE2b-256 | 0b17317b30e1763ccf02b61092b683c74bbb1eed736cf4843fa9102a2c2acf1b |
Hashes for pycryptodome-3.8.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 432b19da6106785825cbcaea50a8c3846ec9cd4678702f89e02985d27a73a314 |
|
MD5 | e5b45af2ed34205eac8f31199ad39a9e |
|
BLAKE2b-256 | eebaac224d8fdbb24d3cd69602bdbc5f3a43af2f729f2e65c725467bd968976d |
Hashes for pycryptodome-3.8.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecb7718fc0087a67023fb4a78dd8ebb883d66c49f0465ad656b3213bb1841631 |
|
MD5 | 181af3f3029d77dec4ce3fa8782b4d74 |
|
BLAKE2b-256 | 3803b80810b417d4ac7b4920fa612cd0ddcc720f38abd54ae48eaddc2f7b577c |
Hashes for pycryptodome-3.8.1-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1961a6cbd30926a812809efd0f17bd677f54857ac5fd0b0e2638ad4891407dd0 |
|
MD5 | 70dce7a2c9d56288a1ef9ec86f3aae51 |
|
BLAKE2b-256 | 377791baa7c1da2b2ec4c22ce034f0cee7365fa6bd936c482992c27fd89ae837 |
Hashes for pycryptodome-3.8.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 134479b4f4743402e7e8740f1bf3d779efd95b467c2535c600332b55d0b34686 |
|
MD5 | 25a7171df8707e19c54a82053ee5ae1f |
|
BLAKE2b-256 | ca494acbd985dabff9150294e483aeceeff6965aa642c2cf642ec67b5da0293b |
Hashes for pycryptodome-3.8.1-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02838a7184803c05710ccb4f3c9129fe26b2634f04daf017a3490d8be5f55b62 |
|
MD5 | a9de7922963f8ae0737f94976488b8c9 |
|
BLAKE2b-256 | 2cc8f41d3af5d23b4ad44b4d7ddb9f25b02d4ee10820673eaef5e84f8eda7f1d |
Hashes for pycryptodome-3.8.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df1d5540021b79230cfe8f80bb1f13ee1a626eab10161a26784b78c122c845db |
|
MD5 | 9c59a0f836a6d7fc380d737f91109789 |
|
BLAKE2b-256 | cd1905181505bdf3b7e39cf027f2d037ec691ff0e8d967032b043ec142af4e5e |
Hashes for pycryptodome-3.8.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e8f2d1b97578f0950a46128cca8b2dc44f224c4c08309a66ca53c4a33839fdd |
|
MD5 | 3fe4fbc1317f7eb362e1f37d0645c5da |
|
BLAKE2b-256 | 4180216cd888906de20916c384d4345dd12fa4c475acd6b25af3f38449f727d5 |
Hashes for pycryptodome-3.8.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a53be389125c79728658bf42bf711a277c8ac1b3690d26303bb8b0a9217d8cb9 |
|
MD5 | f64eee52f0891f23fe3da50ba3c4e802 |
|
BLAKE2b-256 | 4fe43a5c7582b6690b92372556a3b12db834241b0e82745086a7e532c78902d5 |
Hashes for pycryptodome-3.8.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 933750922193899d5601404c0d0637c4da12593ac2c54a16ba841b8afef44c9b |
|
MD5 | 8c262cb9952c0e6ffe9cd3aceed459bb |
|
BLAKE2b-256 | 43c2204b9b9601c9c2887b202eadeaa17cb8793095f4137c107cc5b67b7f62bc |
Hashes for pycryptodome-3.8.1-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e874188bb9c274de2dcc0995e885f15732fd0a43c7ef581eff54eef2b11d83c7 |
|
MD5 | d1d23de5336d9f1f081323384d8e94c6 |
|
BLAKE2b-256 | 4e54e5462375c9024d98dbeb0a0e0015dd4abb668f2fa0fd54d1bc74e1c1d604 |
Hashes for pycryptodome-3.8.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9ff57287d899d2c4e17e523ac46d1e90902f3b36a81f0e6817238ff0219597f |
|
MD5 | a57f52bc4dc527fccde67936aba501c5 |
|
BLAKE2b-256 | 2a3f3f9b8598e264950654c3bd5bd39ece109f70a70e391b822212fccbaa197c |
Hashes for pycryptodome-3.8.1-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfdca3079aac696a25edb9a0b59595b9b776426f61587bf5a974596da217834e |
|
MD5 | 9af38f31a2307e2c9b7fd6a3f963955f |
|
BLAKE2b-256 | 909ff3539e4170eb4ce83502de4e06b72f58a359af1411326f9de8075b682b75 |
Hashes for pycryptodome-3.8.1-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 213d360d5e145a2ff4d9d90afab9e2b2d99174114aa4b4c04888937730c7ef57 |
|
MD5 | 4e1e314d40358df0252610a4dc41c2b5 |
|
BLAKE2b-256 | 25d3ae87bb935a994d7607ae89f9b55ee233f1b49dc7d80dc982ffc63a5ff59c |