Decrypting Hashed Codes

A Cyber Security Project

Project Introduction

This project focuses on decrypting hashed codes and understanding hashing concepts. As cyber threats increase, encryption and hashing play crucial roles in securing information.

Importance in Cybersecurity: Hashing is used for passwords, digital signatures, integrity checks, and more. Understanding it protects systems from attacks like collisions or rainbow tables.

  1. Basics of hashing and its significance
  2. Common algorithms like SHA-1, SHA-256, MD5
  3. A real decryption challenge
  4. The role of salting
  5. Key takeaways

Understanding Hashing Basics

Hashing converts input into a fixed-length value, useful for data integrity verification. Even a tiny change results in a different output.

  1. Password Storage - Hash instead of saving raw passwords
  2. Data Integrity - Detect if data changed
  3. Digital Signatures - Ensure authenticity

Key Properties:

  1. Deterministic - Same input → same hash
  2. Collision Resistant - Hard to find two same hashes
  3. Preimage Resistant - Hard to reverse
  4. Avalanche Effect - Minor change → major output change

Common Hashing Algorithms

We explore SHA-1, SHA-2 (especially SHA-256), and MD5.

Features: Speed, hash length, resistance to attacks

Vulnerabilities: MD5 is weak to collisions, SHA-1 is being deprecated.

Decryption Challenge

Try cracking this hash: 5f4dcc3b5aa765d61d8327deb882cf99
(Hint: It's a very common password.)

Salting Concept

Salting means adding randomness to passwords before hashing. Even if two users have the same password, their hashes will differ.

This protects against rainbow table attacks.

Findings

Hashing alone isn't secure. Salting and strong algorithms like SHA-256 or bcrypt are essential. MD5 should be avoided.

Conclusion

Understanding hashing and salting is key for developers working with sensitive data. Security starts at the foundation.

Resources & Links

Demos

This section may include a simple form to try hashing inputs locally.