Skip to main content

Simple cryptographic library for hashing and encrypting

Project description

Cryptographic library with really simple API.

Includes functions for hashes, symmetric and asymmetric crypto, along with helper functions. Acts as a wrapper for PyCrypto and a few standard libraries.


Documentation is available at

The full source code repository is at


pip install simplecrypto

This library depends on PyCrypto. On Linux this is installed automatically by pip. If the dependency installation fail on Windows, you may want to use a prebuilt installer. If you wish to compile it I suggest using the Mingw tools as indicated here.


from simplecrypto import sha1, encrypt, decrypt, RsaKeypair, base64

sha1('The quick brown fox jumps over the lazy dog')
# '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'

# `encrypt` and `decrypt` use AES-256.
m = encrypt('secret message', 'secret key')
# 'uRKa9xX7zW6QT1yJxIQb5E/0DzaxQglVggnFam5K'
decrypt(m, 'secret key')
# b'secret message'

skey = RsaKeypair(2048)
pkey = skey.publickey

m = pkey.encrypt('secret message')
# b'secret message'

s = skey.sign('authenticated message')
pkey.verify('authenticated message', s)
# True

# 'bWVzc2FnZQ=='

Last Updates

0.3.4 (2022-08-24)

  • Update metadata.

0.3.3 (2015-8-07)

  • Package tests.

0.3.2 (2014-3-30)

  • Add HMAC support.

  • Use SHA256 as default RSA hash

  • Allow selection of PRNG used for RSA key generation

  • Minor changes for better Python2 support

0.3.1 (2013-12-06)

  • Add project to Travis and Coverall.

  • Increase test coverage to 100%.

  • Add installation instructions.

  • Rename guess_hash to guess_transformation.

0.3.0 (2013-12-05)

  • Add serialize to RSA keys.

  • Allow RSA keys to receive PEM encoded keys in the constructor.

  • Implement __repr__ method in base Key class (you can now print keys).

  • Split package into modules key, formats, hashes, random and exceptions.

0.2.3 (2013-12-05)

  • Update project information (keywords, classifiers, description, etc).

0.2.2 (2013-12-04)

  • Add send and receive functions for secure message building.

  • Raise EncryptionError instead of generic errors.

  • Slightly better test coverage.

0.2.1 (2013-12-03)

  • Add base Key class.

  • Introduce raw versions of encrypt and decrypt.

  • Implemented key printing and comparison.

0.2.0 (2013-12-03)

  • Return str from to_base64 and allow from_base64 to receive str.

  • Create classes for different key types.

  • Change return from to_hex to str for consistency with base64.

  • guess_hash function moved to different module.

  • Automatically use session keys when encrypting large messages.

0.1.0 (2013-11-26)

  • Initial release.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simplecrypto-0.3.4.tar.gz (11.5 kB view hashes)

Uploaded source

Built Distribution

simplecrypto-0.3.4-py3-none-any.whl (11.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page