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.8-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f62d21bc693f3d7d444f17ed2ad7a913b4c37c15cd807895d013c39c0517dfd |
|
MD5 | 4cb679f2727c85d1c024d3fa0e119cc8 |
|
BLAKE2b-256 | 9c617da9ce3913a0d4a49dc4b4ea8602b31638ad29fd21727fc278d62811e787 |
Hashes for pycryptodome-3.9.8-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de6e1cd75677423ff64712c337521e62e3a7a4fc84caabbd93207752e831a85a |
|
MD5 | 81729f7e8be042e917eec7cac27442c0 |
|
BLAKE2b-256 | 970dfe795ec913ff7b766867e3582970f2fa2488579cdb70b5ce5daa18e848eb |
Hashes for pycryptodome-3.9.8-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39ef9fb52d6ec7728fce1f1693cb99d60ce302aeebd59bcedea70ca3203fda60 |
|
MD5 | af3c89e9c5b45f478d646a37a03a8136 |
|
BLAKE2b-256 | 16c558696c042e5a572ee39f612dfb86b69464cbaedb1781b98f394b2ba72ef2 |
Hashes for pycryptodome-3.9.8-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55eb61aca2c883db770999f50d091ff7c14016f2769ad7bca3d9b75d1d7c1b68 |
|
MD5 | 0da1aa70c0862eefa49590218f0f6058 |
|
BLAKE2b-256 | fcab4190dbe7b5f7db0b0356fe63108ca8a4ecc43eea7fa0559c43c154ec3e06 |
Hashes for pycryptodome-3.9.8-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02e51e1d5828d58f154896ddfd003e2e7584869c275e5acbe290443575370fba |
|
MD5 | 583c764c48f62e2d61f8da801c5420c6 |
|
BLAKE2b-256 | dc73b2ee5cfb663d71c74c864752f07d831661ad0b1d78483d5cb47124c62cd9 |
Hashes for pycryptodome-3.9.8-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 663f8de2b3df2e744d6e1610506e0ea4e213bde906795953c1e82279c169f0a7 |
|
MD5 | e56185e39402859846afa3c5c5e44a25 |
|
BLAKE2b-256 | 705eb879ddba228d1aae200c680c5a0405b921f1d1e4ec7ebfe4d81efdde6c02 |
Hashes for pycryptodome-3.9.8-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd302b6ae3965afeb5ef1b0d92486f986c0e65183cd7835973f0b593800590e6 |
|
MD5 | c4ecc4907ed73a0fcc4eedfa770a9d9d |
|
BLAKE2b-256 | 262973158aec5b839234920c934ca6b81af260eaedd1f93ce341e05fa32c89b4 |
Hashes for pycryptodome-3.9.8-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8063a712fba642f78d3c506b0896846601b6de7f5c3d534e388ad0cc07f5a149 |
|
MD5 | 8400be3ea4c5006953a1d6a1c82c4824 |
|
BLAKE2b-256 | 804f818c5381d9c3d32eac7a8bec419a170e79a2b48339c12b2ef868354f1980 |
Hashes for pycryptodome-3.9.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8074c8448cfd0705dfa71ca333277fce9786d0b9cac75d120545de6253f996a |
|
MD5 | 176a647efd461b3b1869a5ff27b6bb52 |
|
BLAKE2b-256 | 8ba439381cd68a3b61171a75c823495e1b762d12a1c3afeea69c635d499b8eed |
Hashes for pycryptodome-3.9.8-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8bf40cf6e281a4378e25846924327e728a887e8bf0ee83b2604a0f4b61692e8 |
|
MD5 | 098238131cb93a305ca012cbe36859b2 |
|
BLAKE2b-256 | 44723db473557ae21238229f3805de723d1fe34fa337d08cf94877073daf62ef |
Hashes for pycryptodome-3.9.8-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4350a42028240c344ee855f032c7d4ad6ff4f813bfbe7121547b7dc579ecc876 |
|
MD5 | 0e022c6ac391dc1f23289e6df6f008f0 |
|
BLAKE2b-256 | 37c5fe8ab1bfd2b69536059e4fa2b4bf76cc0cce5d24f2f8ebb842467159ca04 |
Hashes for pycryptodome-3.9.8-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87006cf0d81505408f1ae4f55cf8a5d95a8e029a4793360720ae17c6500f7ecc |
|
MD5 | 606b817825c0ef45ed87099b44ee1680 |
|
BLAKE2b-256 | 37f549251cffebab849b66339b57841533273eed2f2208d80ec5574d09db30fe |
Hashes for pycryptodome-3.9.8-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef39c98d9b8c0736d91937d193653e47c3b19ddf4fc3bccdc5e09aaa4b0c5d21 |
|
MD5 | 523a9e390151521dc66b0d5579e7b941 |
|
BLAKE2b-256 | ba8e214cd2666d830099561ce75c70d6ac36cdd1018ef9cda45a4b5c310a6f32 |
Hashes for pycryptodome-3.9.8-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abc2e126c9490e58a36a0f83516479e781d83adfb134576a5cbe5c6af2a3e93c |
|
MD5 | 7ae4af7525042baadb968b9b30630511 |
|
BLAKE2b-256 | d0ee94661847826112f5013d2968d412c9544fded8b5bcc3dc0cc71461111ffb |
Hashes for pycryptodome-3.9.8-cp37-cp37m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bec2bcdf7c9ce7f04d718e51887f3b05dc5c1cfaf5d2c2e9065ecddd1b2f6c9a |
|
MD5 | 842c2c278ce82b591095d72b009c6053 |
|
BLAKE2b-256 | 969fe0f21fff3ce636b3542b405482d86cb3eb0b99facf22f7fe49cee5393a03 |
Hashes for pycryptodome-3.9.8-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b56638d58a3a4be13229c6a815cd448f9e3ce40c00880a5398471b42ee86f50e |
|
MD5 | c9483247639a72ef496a8c77bf0c593c |
|
BLAKE2b-256 | b663007019a5b68aecb839b2982f64eb166ea58027e381d132de1dccf4269fb5 |
Hashes for pycryptodome-3.9.8-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67dcad1b8b201308586a8ca2ffe89df1e4f731d5a4cdd0610cc4ea790351c739 |
|
MD5 | fb8235316a9b48da670c99d7e055c812 |
|
BLAKE2b-256 | da3501dc3f8ed84be03ef8249d1da69418c136a23280b795db2a31353983d6b9 |
Hashes for pycryptodome-3.9.8-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cecbf67e81d6144a50dc615629772859463b2e4f815d0c082fa421db362f040e |
|
MD5 | f8cbc8b2fd72ddea93be76946089102d |
|
BLAKE2b-256 | 7eec5a594538d3dcb83aceb02c21436f5c178e5193a0d67a153cb77e7eec8d6c |
Hashes for pycryptodome-3.9.8-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 132a56abba24e2e06a479d8e5db7a48271a73a215f605017bbd476d31f8e71c1 |
|
MD5 | 5afbea988b140e9db6e66bd42d9c1c57 |
|
BLAKE2b-256 | 175517fa0b55849dc135f7bc400993a9206bf06d1b5d9520b0bc8d47c57aaef5 |
Hashes for pycryptodome-3.9.8-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f78a68c2c820e4731e510a2df3eef0322f24fde1781ced970bf497b6c7d92982 |
|
MD5 | 21015b7bd02a7cf98006596b2faed3b1 |
|
BLAKE2b-256 | cb7d3575ee156287c82d3439e6edfb95e4020b48130f6fbe94cca280e182a602 |
Hashes for pycryptodome-3.9.8-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03d5cca8618620f45fd40f827423f82b86b3a202c8d44108601b0f5f56b04299 |
|
MD5 | 1b899eedf84c6194b804f6404255ae03 |
|
BLAKE2b-256 | 497119ec685b364b51eb9173aefc42d1b4d8392916d3221836bf6fac9511f5ea |
Hashes for pycryptodome-3.9.8-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b998dc45ef5f4e5cf5248a6edfcd8d8e9fb5e35df8e4259b13a1b10eda7b16b |
|
MD5 | 264842fa06cae3c9309c532ada7cd7a2 |
|
BLAKE2b-256 | 2b2ad442845d06be9929cfde777be1bb2e63ae6a7c96543acfe8340088556fc0 |
Hashes for pycryptodome-3.9.8-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a207231a52426de3ff20f5608f0687261a3329d97a036c51f7d4c606a6f30c23 |
|
MD5 | 30c25aaf6378c0056f5e9e31c467e193 |
|
BLAKE2b-256 | 27730d40005966e8d8d7e8a3bf4afdccba0867f19e1388ebf075627aefdcdd43 |
Hashes for pycryptodome-3.9.8-cp35-cp35m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2e045224074d5664dc9cbabbf4f4d4d46f1ee90f24780e3a9a668fd096ff17f |
|
MD5 | bccb691f1d26975b43c4add903bdb39f |
|
BLAKE2b-256 | 612a65c4f8da2467bc3a825e54329327b6fb302d2a7deb77bbcc758df6e3f579 |
Hashes for pycryptodome-3.9.8-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f521178e5a991ffd04182ed08f552daca1affcb826aeda0e1945cd989a9d4345 |
|
MD5 | 00dba8ec2015366ec6783ae91494c904 |
|
BLAKE2b-256 | bf7d6b6494d91534b470f8045b9be013f1ba63eb84333da27d44b4efd4ae3e34 |
Hashes for pycryptodome-3.9.8-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54bdedd28476dea8a3cd86cb67c0df1f0e3d71cae8022354b0f879c41a3d27b2 |
|
MD5 | 5b4d29324a8ae11992b150c5ddaaf009 |
|
BLAKE2b-256 | 6c1b40c892b1417d12d327d1ba3ba5f42e395f29aed998837e134b0b77fb0f5f |
Hashes for pycryptodome-3.9.8-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6276478ada411aca97c0d5104916354b3d740d368407912722bd4d11aa9ee4c2 |
|
MD5 | 883c19d703c05c49ea274cbdf9d6d661 |
|
BLAKE2b-256 | c459139b03d8d9f6b14de7d503239dc8f3d45ff7b7d43134a14472d1566976e5 |
Hashes for pycryptodome-3.9.8-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 709b9f144d23e290b9863121d1ace14a72e01f66ea9c903fbdc690520dfdfcf0 |
|
MD5 | 6297647a6ee814c7decc7659f993981d |
|
BLAKE2b-256 | 4315a3fb9f8a7a2d7f02b1966a40620b5272c8b8b862bbdc2c1bc578321742d6 |
Hashes for pycryptodome-3.9.8-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e655746f539421d923fd48df8f6f40b3443d80b75532501c0085b64afed9df5 |
|
MD5 | 4fc1f64e877bbd5d9988640a64a07a06 |
|
BLAKE2b-256 | f20c3891a0e772c5ca247ab5d566be0b6f896d26a1b71b67cd16eecc415b507e |
Hashes for pycryptodome-3.9.8-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 360955eece2cd0fa694a708d10303c6abd7b39614fa2547b6bd245da76198beb |
|
MD5 | efd00eee60cdaf3f73a9753da85595a9 |
|
BLAKE2b-256 | 6a33d940707c49ab9abc02a6368f8952907dc424967626095d190c1ac96dc553 |
Hashes for pycryptodome-3.9.8-cp27-cp27m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcd5b8416e73e4b0d48afba3704d8c826414764dafaed7a1a93c442188d90ccc |
|
MD5 | ac8825d6446176d139da07ce677f4d94 |
|
BLAKE2b-256 | 6dba19a8161b6d355333566348e28e6bd2b482286ec0608e60bed6669b557dea |
Hashes for pycryptodome-3.9.8-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbe65d5cfe04ff2f7684160d50f5118bdefb01e3af4718eeb618bfed40f19d94 |
|
MD5 | 6be5012bf4d48d9647fad29ad031996b |
|
BLAKE2b-256 | d70ad8a11786b62237727845348464febb707b7b04968381257d4c77ad1d18a4 |
Hashes for pycryptodome-3.9.8-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80d57177a0b7c14d4594c62bbb47fe2f6309ad3b0a34348a291d570925c97a82 |
|
MD5 | a16d49e3d5a41359a662a3b791a1ddb0 |
|
BLAKE2b-256 | 9afdd39efd12bb2ecfc1fd23febcd4685235a974b386600a7976e9c10a277031 |
Hashes for pycryptodome-3.9.8-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50348edd283afdccddc0938cdc674484533912ba8a99a27c7bfebb75030aa856 |
|
MD5 | 9116f388ce13f6db12448a91b2a757d1 |
|
BLAKE2b-256 | 0f8db1e003c5a06850b34f4374b5a73b169a03babbf115c4b13101d3914e9fd0 |