Hash functions play a crucial role in cryptography and data integrity verification. Python's hashlib
library provides a convenient interface to work with various cryptographic hash functions. In this tutorial, we will explore how to use the hashlib
library to calculate hash values of strings and files.
The hashlib
module provides a common interface to many secure hash and message digest algorithms. These algorithms take arbitrary-sized data and return a fixed-size hash value. Some of the supported algorithms include MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512.
Let's start by calculating the hash of a string using hashlib. Here's a simple example:
import hashlib # Define a string
my_string = "Hello, world!" # Create a hash object
hash_object = hashlib.sha256() # Update hash object with the string
hash_object.update(my_string.encode()) # Get the hexadecimal representation of the hash
hex_dig = hash_object.hexdigest() print("Hash of the string:", hex_dig)
hashlib.sha256()
), update it with the string, and finally obtain the hexadecimal representation of the hash using hexdigest()
.Hashing files is a common practice for verifying file integrity and detecting duplicate files. Let's see how to calculate the hash of a file:
import hashlib def file_hash(filename):
# Create a hash object
hash_object = hashlib.sha256() # Read the file in binary mode and update hash object
with open(filename, 'rb') as f:
while True:
data = f.read(65536) # Read in 64k chunks
if not data:
break
hash_object.update(data) # Get the hexadecimal representation of the hash
return hash_object.hexdigest() # Calculate the hash of a file
file_path = "example.txt"
file_hash_value = file_hash(file_path) print("Hash of the file:", file_hash_value)
file_hash()
that calculates the SHA-256 hash of a file. We read the file in binary mode in chunks and update the hash object iteratively.Hash functions are commonly used to verify the integrity of data. By comparing the hash of the original data with the hash of received or stored data, one can ensure that the data has not been altered.
Hash functions are also used for secure password storage. Instead of storing passwords directly, systems store their hash values. When a user logs in, the system hashes the entered password and compares it with the stored hash.
In digital signatures, hash functions are used to create a unique summary of a message or document. This hash value is then encrypted with the signer's private key to generate the digital signature.
Python Mega Course: Learn Python in 60 Days, Build 20 Apps
Learn Python on Udemy completely in 60 days or less by building 20 real-world applications from web development to data science.