My Note / Zeliang YAO
  • Zeliang's Note
  • Dremio
    • Custom Class
  • 💕Python
    • Design Pattern
      • Creational
        • Abstract Factory
        • Factory Method
        • Singleton
        • Builder / Director
      • Structural
        • Adapter
    • Boto3
    • Typing
    • String
    • Requests
    • Iterator & Iterable
      • Consuming iterator manually
      • Lazy Iterable
    • Genrators
    • itertools
    • Collections
    • Customization
      • Customize built-in
      • Logging
      • Hdf5
      • Sqlite3 & Df
    • Pandas
      • Basic
      • Data cleaning
      • Merge, Join, Concat
      • Useful tricks
      • Simple model
      • Pandas acceleration
    • Pandas time series
      • Date Range
      • Datetime Index
      • Holidays
      • Function_to_date_time
      • Period
      • Time zone
    • *args and**kwargs
    • Context Manager
    • Lambda
    • SHA
    • Multithreading
      • Threading
      • Speed Up
    • Email
    • Improvement
    • Useful functions
    • Python OOP
      • Basic
      • @static / @class method
      • attrs module
      • Dataclasses
      • Dataclasses example
      • Others
    • Design patterns
      • Creational Patterns
      • Structural Patterns
      • Behavioral Patterns
  • 🐣Git/Github
    • Commands
  • K8s
    • Useful commands
  • Linux
    • Chmod
Powered by GitBook
On this page

Was this helpful?

  1. Python

SHA

SHA, ( Secure Hash Algorithms ) are set of cryptographic hash functions defined by the language to be used for various applications such as password security etc. Some variants of it are supported by Python in the “hashlib” library. These can be found using “algorithms_guaranteed” function of hashlib.


import hashlib 
  
# prints all available algorithms 
print ("The available algorithms are : ", end ="") 
print (hashlib.algorithms_guaranteed)

The available algorithms are : {'sha3_384', 'sha3_256', 'shake_128', 'sha256', 'shake_256', 'md5', 'sha1', 'sha512', 'sha3_512', 'sha3_224', 'blake2b', 'sha224', 'sha384', 'blake2s'}

Functions associated :

  • encode() : Converts the string into bytes to be acceptable by hash function.

  • hexdigest() : Returns the encoded data in hexadecimal format.

The different SHA hash functions are explained below.

  • SHA256 : This hash function belong to hash class SHA-2, the internal block size of it is 32 bits.

  • SHA384 : This hash function belong to hash class SHA-2, the internal block size of it is 32 bits. This is one of the truncated version.

  • SHA224 : This hash function belong to hash class SHA-2, the internal block size of it is 32 bits. This is one of the truncated version.

  • SHA512 : This hash function belong to hash class SHA-2, the internal block size of it is 64 bits.

  • SHA1 : The 160 bit hash function that resembles MD5 hash in working and was discontinued to be used seeing its security vulnerabilities.

import hashlib 
  
# initializing string 
str = "GeeksforGeeks"
  
# encoding GeeksforGeeks using encode() 
# then sending to SHA256() 
result = hashlib.sha256(str.encode())    #<sha256 HASH object>


# printing the equivalent hexadecimal value. 
print("The hexadecimal equivalent of SHA256 is : ") 
print(result.hexdigest()) 
  
print ("\r") 
  
# initializing string 
str = "GeeksforGeeks"
  
# encoding GeeksforGeeks using encode() 
# then sending to SHA384() 
result = hashlib.sha384(str.encode()) 
  
# printing the equivalent hexadecimal value. 
print("The hexadecimal equivalent of SHA384 is : ") 
print(result.hexdigest()) 
  
print ("\r") 
  
# initializing string 
str = "GeeksforGeeks"
  
# encoding GeeksforGeeks using encode() 
# then sending to SHA224() 
result = hashlib.sha224(str.encode()) 
  
# printing the equivalent hexadecimal value. 
print("The hexadecimal equivalent of SHA224 is : ") 
print(result.hexdigest()) 
  
print ("\r") 
  
# initializing string 
str = "GeeksforGeeks"
  
# encoding GeeksforGeeks using encode() 
# then sending to SHA512() 
result = hashlib.sha512(str.encode()) 
  
# printing the equivalent hexadecimal value. 
print("The hexadecimal equivalent of SHA512 is : ") 
print(result.hexdigest()) 
  
print ("\r") 
  
# initializing string 
str = "GeeksforGeeks"
  
# encoding GeeksforGeeks using encode() 
# then sending to SHA1() 
result = hashlib.sha1(str.encode()) 
  
# printing the equivalent hexadecimal value. 
print("The hexadecimal equivalent of SHA1 is : ") 
print(result.hexdigest())

===========================================================

The hexadecimal equivalent of SHA256 is : 
f6071725e7ddeb434fb6b32b8ec4a2b14dd7db0d785347b2fb48f9975126178f

The hexadecimal equivalent of SHA384 is : 
d1e67b8819b009ec7929933b6fc1928dd64b5df31bcde6381b9d3f90488d253240490460c0a5a1a873da8236c12ef9b3

The hexadecimal equivalent of SHA224 is : 
173994f309f727ca939bb185086cd7b36e66141c9e52ba0bdcfd145d

The hexadecimal equivalent of SHA512 is : 
0d8fb9370a5bf7b892be4865cdf8b658a82209624e33ed71cae353b0df254a75db63d1baa35ad99f26f1b399c31f3c666a7fc67ecef3bdcdb7d60e8ada90b722

The hexadecimal equivalent of SHA1 is : 
4175a37afd561152fb60c305d4fa6026b7e79856

Generate hash based on string

import hashlib

def hash_string(string):
    """
    Return a SHA-256 hash of the given string
    """
    return hashlib.sha256(string.encode('utf-8')).hexdigest()

hash_string("Alpha")

'b1a96dd646bccaa24cef7a3db22a6f995f05658f4f1c3272913e258c03e6fb24'
PreviousLambdaNextMultithreading

Last updated 3 years ago

Was this helpful?

💕
Page cover image