Pure Python implementation of SHA2 (i.e., SHA224, SHA256, SHA384, and SHA512).
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
sha2 Actually fix line endings Oct 10, 2017
.gitignore Expand gitignore Apr 3, 2016
.travis.yml Add travis.yml Apr 3, 2016
LICENSE Add LICENSE (fixes #3) Jun 20, 2017
README.rst Update README to mention license Jun 20, 2017
test.py Added unit tests. Dec 22, 2012





This software is distributed under the MIT License.


pysha2 is a pure Python implementation of the FIPS 180-2 secure hash standard. I originally wrote and published this on the web prior to the inclusion of hashlib into the Python standard library. Unfortunately, the original source was lost due to a hard drive failure. Fortunately, the library proved useful to some at the time (due to the prevalence of Python 2.3 and 2.4), and so I was able to recover all but the unit tests (which I later rewrote).


The library supports both the "old" hash interface of md5 and sha, as well as the "new" hash interface introduced by hashlib. This permits you to use pysha2 as a drop-in replacement for either interface.

A quick example of hashing a string:

import sha2

print sha2.sha256('Can you keep a secret?').hexdigest()


To run the included unit tests, execute:

python test.py

in the current directory or run with nosetests.