Hashlib
[Hashing Home][Home]
Hashlib is a standard hashing and message digest library or Python 3, and supports SHA1, SHA224, SHA256, SHA384, SHA512, and SHA-3 series.
|
Theory
The main constructors for hash algorithms are sha1(), sha224(), sha256(), sha384(), sha512(), sha3_224(), sha3_256(), sha3_384(), sha3_512(), shake_128(), shake_256(), blake2b(), and blake2s():
import hashlib import sys s="Nobody inspects the spammish repetition" hex=False showhex="No" if (len(sys.argv)>1): s=str(sys.argv[1]) if (len(sys.argv)>2): showhex=str(sys.argv[2]) print("Message: ",s) if (showhex=="yes"): hex=True s1=s.encode() try: if (hex==True): s1 = binascii.a2b_hex(s) else: s1=s.encode() print("\nMD5:\t",hashlib.md5(s1).hexdigest()) print("SHA1:\t",hashlib.sha1(s1).hexdigest()) print("SHA224:\t",hashlib.sha224(s1).hexdigest()) print("SHA256:\t",hashlib.sha256(s1).hexdigest()) print("SHA384:\t",hashlib.sha384(s1).hexdigest()) print("SHA512:\t",hashlib.sha512(s1).hexdigest()) print("SHA3-224:\t",hashlib.sha3_224(s1).hexdigest()) print("SHA3-256:\t",hashlib.sha3_256(s1).hexdigest()) print("SHA3-384:\t",hashlib.sha3_384(s1).hexdigest()) print("SHA3-512:\t",hashlib.sha3_512(s1).hexdigest()) print("Blake2s:\t",hashlib.blake2s(s1).hexdigest()) print("Blake2b:\t",hashlib.blake2b(s1).hexdigest()) print("SHAKE128:\t",hashlib.shake_128(s1).hexdigest(16)) print("SHAKE128:\t",hashlib.shake_128(s1).hexdigest(32)) print("SHAKE128:\t",hashlib.shake_128(s1).hexdigest(64)) print("SHAKE256:\t",hashlib.shake_256(s1).hexdigest(16)) print("SHAKE256:\t",hashlib.shake_256(s1).hexdigest(32)) print("SHAKE256:\t",hashlib.shake_256(s1).hexdigest(64)) except Exception as e: print(e)
A sample run:
Message: fred MD5: 570a90bfbf8c7eab5dc5d4e26832d5b1 SHA1: 31017a722665e4afce586950f42944a6d331dabf SHA224: b280f6be0fb6617394fd0db9a5ed7861820e27b816d141872f8dca69 SHA256: d0cfc2e5319b82cdc71a33873e826c93d7ee11363f8ac91c4fa3a2cfcd2286e5 SHA384: 428024be236d042b4dca337ec8090410be82863b545452834ca1eb225c7f62a207ac31bb4f1d9e2616c13ca017d26a39 SHA512: 3566c33c35c59ba2587bac2a81526cf33ea0928111ed9e1616aa43fcffbc3f5d07e058c80898cd286095b7587ad5edd3511fd943fd7d7743b1ded724262026f3 SHA3-224: 47ff7f7707e40de7e531bbf75fd5f6dfa1b1ae9a3033fae0b4c1bece SHA3-256: 901e5b95a7c6f4c25f1dbb31931585a1aac6cac21eb1f09a39411f5ba4e710d6 SHA3-384: a0fc5aee37444122b8aec531e132633da6ed746779af999d028d9ecbba7214a453b0ca13c9cbfbda481a1d7f74341f2c SHA3-512: 9d15efc1b71e0143a4daad34d5bb2e97d4968d80269e49c633aac69cc13d990b25295685eacb5b29eb584a1f6dd92a8e91e257c0c493a869310bee0b8a2ef440 Blake2s: 6552aced3ee8c909b537bf61057745d85f17b0ad52457091c1e508105ef912ea Blake2b: 817bdde172952d439c9ccb1a4d91476c93cd4578038715f139d9095a9f7a18026463d67e3c666733a8e4e733195414e7888631057b3857418f51a61848467d10 SHAKE128: ed8642727f1405d9473884d2626c08ac SHAKE128: ed8642727f1405d9473884d2626c08ac0897dc80b29519997bbd43716ecbc84d SHAKE128: ed8642727f1405d9473884d2626c08ac0897dc80b29519997bbd43716ecbc84d24332f4aeb0bc1270d00a08a8f300091570a0be9daea95e744dd61b94fe1f375 SHAKE256: 834a5e9fefb7a7501bc9b7d7b58b1ebb SHAKE256: 834a5e9fefb7a7501bc9b7d7b58b1ebbe68962e7007af7a3b9af3cf1c70854e5 SHAKE256: 834a5e9fefb7a7501bc9b7d7b58b1ebbe68962e7007af7a3b9af3cf1c70854e5d2e95a3b5a1b51758c30b111306eb8fc2ae3de073fdbbb5527b00b102381a622