simple_hashing.py
import hashlib# encode it to bytes using UTF-8 encodingmessage = "Some text to hash".encode()# hash with MD5 (not recommended)print("MD5:", hashlib.md5(message).hexdigest())# hash with SHA-2 (SHA-256 & SHA-512)print("SHA-256:", hashlib.sha256(message).hexdigest())print("SHA-512:", hashlib.sha512(message).hexdigest())# hash with SHA-3print("SHA-3-256:", hashlib.sha3_256(message).hexdigest())print("SHA-3-512:", hashlib.sha3_512(message).hexdigest())# hash with BLAKE2# 256-bit BLAKE2 (or BLAKE2s)print("BLAKE2c:", hashlib.blake2s(message).hexdigest())# 512-bit BLAKE2 (or BLAKE2b)print("BLAKE2b:", hashlib.blake2b(message).hexdigest())
hashing_files.py
import hashlibimport sysdef read_file(file): """Reads en entire file and returns file bytes.""" BUFFER_SIZE = 16384 # 16 kilo bytes b = b"" with open(file, "rb") as f: while True: # read 16K bytes from the file bytes_read = f.read(BUFFER_SIZE) if bytes_read: # if there is bytes, append them b += bytes_read else: # if not, nothing to do here, break out of the loop break return bif __name__ == "__main__": # read some file file_content = read_file(sys.argv[1]) # some chksums: # hash with MD5 (not recommended) print("MD5:", hashlib.md5(file_content).hexdigest()) # hash with SHA-2 (SHA-256 & SHA-512) print("SHA-256:", hashlib.sha256(file_content).hexdigest()) print("SHA-512:", hashlib.sha512(file_content).hexdigest()) # hash with SHA-3 print("SHA-3-256:", hashlib.sha3_256(file_content).hexdigest()) print("SHA-3-512:", hashlib.sha3_512(file_content).hexdigest()) # hash with BLAKE2 # 256-bit BLAKE2 (or BLAKE2s) print("BLAKE2c:", hashlib.blake2s(file_content).hexdigest()) # 512-bit BLAKE2 (or BLAKE2b) print("BLAKE2b:", hashlib.blake2b(file_content).hexdigest())