How to Use Cryptographic hashes Using Python
Hello everyone, Today we will be going to learn about Cryptographic Hashes and message digest.
What is hash Function?
A cryptographic hash function is a function which takes an input or message and convert it to a fixed-size alphanumeric bit string.The output string is called the 'hash value', 'hash code', 'message digest', 'digital fingerprint', 'digest' or 'checksum').
It is a one way hash function. It means if "f" is a hashing function and we convert in to F(x) is very fast and easy. But if you want to obtain again "x" value, It will take many years.
Now suppose you want to hash the string "ManishHacker1" with the md5 Function, the result is f9dece57a97af246e7132b02d5c76d77
Uses of Hash Function
One use is a data structure called a hash table, widely used in computer software for rapid data lookup.
and many more.
How to use Hash function using Python.
In python contain a hashlib module which is provide some most popular hashes algorithm. Today we will be learn, how to use hashes algorithm with the help of hashlib module. Hashlib module is “backed” by OpenSSL, all of of the algorithms provided by that library are available, including:
Uses md5:
import hashlib
key = raw_input('Enter String to hash: ')
# Assumes the default UTF-8
hash_value = hashlib.md5(key.encode())
print "MD5 hash value: ",hash_value.hexdigest()
The above example calculate the md5 and prints the HEX digest of that string. If you want to sequence of byte then we should be use digest instead.
Uses SHA1:
import hashlib
key = hashlib.sha1(b'ManishHacker1')
hash_value = key.hexdigest()
print "sha1 hash value: ",hash_value
In above code we used 'b' string because this converts the string to bytes.the Hashing function only takes a sequence of bytes as a parameter.
Uses SHA224:
import hashlib
key = hashlib.sha224(b'ManishHacker1')
hesh_value = key.hexdigest()
print "sha224 hash value: ",hash_value
Uses SHA256:
import hashlib
key = hashlib.sha256(b'ManishHacker1')
hash_value = key.hexdigest()
print "sha256 hash value: ",hash_value
Uses SHA384:
import hashlib
key = hashlib.sha384(b'ManishHacker1')
hash_value = key.hexdigest()
print "sha384 hash value: ",hash_value
Uses SHA512:
import hashlib
key = hashlib.sha512(b'ManishHacker1')
hash_value = key.hexdigest()
print "sha512 hash value: ",hash_value
Using update function:
import hashlib
lorem = '''Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.'''
The above sample data save as hashlib_data.py in same directory where our md5.py are exist. After that calculate MD5 digest:
import hashlib
from hashlib_data import lorem
hash = hashlib.md5()
hash.update(lorem)
print hash.hexdigest()
Practicle Example
import hashlib
import uuid
def hash_password(password):
# uuid is used to generate a random number
random_no = uuid.uuid4().hex
return hashlib.md5(random_no.encode() + password.encode()).hexdigest() + ':' + random_no
def check_password(hash_password, user_password):
password, random_no = hash_password.split(':')
return password == hashlib.md5(random_no.encode() + user_password.encode()).hexdigest()
new_pass = raw_input('Please enter a password: ')
hash_password = hash_password(new_pass)
print('The string to store in the database is: ' + hash_password)
old_pass = raw_input('Now please enter the password again to check: ')
if check_password(hash_password, old_pass):
print('You entered the right password')
else:
print('Your password is does not match.')
In the above example we are hashing the password and store in our database. uuid used for generate random number sequence added to the password before using the hash function. The above example prevent the rainbow table attack and dictionary attacks.You can used above example to real world application if you are using user and password utility.
If you want to read full article about secure password please refer to link:
Secure PasswordThank You for reading this article. And also like my FB page given below link and share it.
Best Python Training and Ethical Hacking Training in Meerut, Noida , Delhi.
Follow ManishHacker1
Comments
Post a Comment