Bird
Raised Fist0
Cybersecurityknowledge~5 mins

Hashing algorithms (SHA, MD5) in Cybersecurity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a hashing algorithm?
A hashing algorithm is a process that takes input data and converts it into a fixed-size string of characters, which appears random. This output is called a hash and is unique to the original data.
Click to reveal answer
beginner
What does MD5 stand for and what is it used for?
MD5 stands for Message Digest 5. It is a hashing algorithm used to create a 128-bit hash value, often used to check data integrity but is now considered insecure for cryptographic purposes.
Click to reveal answer
intermediate
What is SHA and how is it different from MD5?
SHA stands for Secure Hash Algorithm. It produces longer hash values (like 160-bit or more) and is more secure than MD5, making it better for protecting data against tampering.
Click to reveal answer
intermediate
Why are MD5 and SHA hashes considered one-way functions?
Because once data is hashed, it is practically impossible to reverse the process and get the original data back. This one-way property helps protect sensitive information.
Click to reveal answer
advanced
What is a collision in hashing algorithms?
A collision happens when two different inputs produce the same hash output. This is a weakness because it can allow attackers to trick systems that rely on unique hashes.
Click to reveal answer
What is the main purpose of a hashing algorithm?
ATo convert data into a fixed-size unique string
BTo encrypt data so it can be decrypted later
CTo compress data to save space
DTo generate random numbers
Which hashing algorithm is considered less secure today?
ASHA-3
BSHA-1
CSHA-256
DMD5
What does a collision in hashing mean?
ATwo inputs produce the same hash
BHash cannot be generated
CHash is too long
DHash is reversible
Which property makes hashing algorithms useful for passwords?
AThey are reversible
BThey are one-way functions
CThey produce random outputs
DThey compress data
SHA stands for:
ASecure Hacking Algorithm
BSimple Hash Application
CSecure Hash Algorithm
DStrong Hash Access
Explain what a hashing algorithm does and why it is important in cybersecurity.
Think about how data is transformed and why reversing it is hard.
You got /4 concepts.
    Compare MD5 and SHA in terms of security and usage.
    Consider their strength against attacks and common applications.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of hashing algorithms like MD5 and SHA in cybersecurity?
      easy
      A. To compress files to save storage space
      B. To create a fixed-size code representing data for integrity verification
      C. To encrypt data so only authorized users can read it
      D. To generate random passwords automatically

      Solution

      1. Step 1: Understand hashing function role

        Hashing algorithms convert any input data into a fixed-size string of characters, called a hash, which uniquely represents the original data.
      2. Step 2: Identify the main use in cybersecurity

        This fixed-size hash is mainly used to verify data integrity, ensuring data has not been altered.
      3. Final Answer:

        To create a fixed-size code representing data for integrity verification -> Option B
      4. Quick Check:

        Hashing = Data integrity check [OK]
      Hint: Hashing creates unique codes to check data changes [OK]
      Common Mistakes:
      • Confusing hashing with encryption
      • Thinking hashing compresses data
      • Believing hashing generates passwords
      2. Which of the following is the correct way to represent the MD5 hash of the string "hello"?
      easy
      A. A variable-length string depending on input size
      B. A plain text copy of the original string
      C. A 256-bit binary string
      D. A 128-bit fixed-length hexadecimal string

      Solution

      1. Step 1: Recall MD5 hash size

        MD5 produces a fixed-size hash of 128 bits, usually shown as a 32-character hexadecimal string.
      2. Step 2: Compare options with MD5 output format

        The 128-bit fixed-length hexadecimal string correctly describes MD5 output as a fixed-length hexadecimal string.
      3. Final Answer:

        A 128-bit fixed-length hexadecimal string -> Option D
      4. Quick Check:

        MD5 hash length = 128 bits [OK]
      Hint: MD5 always outputs 128-bit hex strings [OK]
      Common Mistakes:
      • Thinking MD5 output length varies
      • Confusing MD5 with SHA-256 length
      • Assuming output is plain text
      3. Consider this Python code snippet using hashlib:
      import hashlib
      hash_object = hashlib.sha256(b'password123')
      hex_dig = hash_object.hexdigest()
      print(hex_dig)

      What will this code output?
      medium
      A. A 64-character hexadecimal string representing the SHA-256 hash of 'password123'
      B. The original string 'password123'
      C. An error because of incorrect input type
      D. A 32-character hexadecimal string representing the MD5 hash

      Solution

      1. Step 1: Understand hashlib usage

        The code uses hashlib.sha256 to hash the byte string b'password123'. The hexdigest() method returns the hash as a hexadecimal string.
      2. Step 2: Identify output length and content

        SHA-256 produces a 256-bit hash, which is 64 hex characters long. The output will be this 64-character hex string representing the hash.
      3. Final Answer:

        A 64-character hexadecimal string representing the SHA-256 hash of 'password123' -> Option A
      4. Quick Check:

        SHA-256 output length = 64 hex chars [OK]
      Hint: SHA-256 hashes output 64 hex characters [OK]
      Common Mistakes:
      • Expecting original string as output
      • Confusing input type causing error
      • Mixing MD5 and SHA-256 output lengths
      4. A developer wrote this code to hash a password using MD5:
      import hashlib
      password = 'mypassword'
      hash = hashlib.md5(password)
      print(hash.hexdigest())

      What is the error in this code?
      medium
      A. The print statement syntax is incorrect
      B. MD5 does not have a hexdigest() method
      C. The input to md5() must be bytes, not a string
      D. The hashlib module does not support MD5

      Solution

      1. Step 1: Check input type for hashlib.md5()

        hashlib.md5() requires a bytes-like object, but the code passes a string directly.
      2. Step 2: Identify correct fix

        The string should be encoded to bytes using password.encode() before passing to md5().
      3. Final Answer:

        The input to md5() must be bytes, not a string -> Option C
      4. Quick Check:

        hashlib.md5() input = bytes [OK]
      Hint: Always encode strings to bytes before hashing [OK]
      Common Mistakes:
      • Passing string directly without encoding
      • Thinking hexdigest() is missing
      • Assuming MD5 unsupported in hashlib
      5. You want to securely store user passwords. Which approach is best considering hashing algorithms?
      hard
      A. Use SHA-256 with a unique salt for each password
      B. Use MD5 without salt because it's faster
      C. Store passwords in plain text for easy retrieval
      D. Use SHA-1 without salt since it's widely supported

      Solution

      1. Step 1: Understand password storage best practices

        Storing passwords securely requires hashing with a strong algorithm and adding a unique salt to prevent attacks like rainbow tables.
      2. Step 2: Evaluate options

        SHA-256 is stronger than MD5 and SHA-1. Using a unique salt per password improves security significantly.
      3. Final Answer:

        Use SHA-256 with a unique salt for each password -> Option A
      4. Quick Check:

        Strong hash + salt = secure password storage [OK]
      Hint: Always salt and use strong hashes like SHA-256 [OK]
      Common Mistakes:
      • Using MD5 without salt thinking it's secure
      • Storing passwords as plain text
      • Using outdated SHA-1 without salt