Hashing

Hashing transforms data into a fixed-size string of characters. It is used for data integrity, password storage and efficient data retrieval.

Key Features:

  • Produces fixed-length output
  • Is deterministic (same input always produces same output)
  • Is one-way (cannot reverse hash to original data)
  • Aims for uniform distribution of hash values
  • Detects changes in input data

Common Hashing Algorithms:

  • MD5 (not secure for cryptographic use)
  • SHA-256
  • bcrypt
  • Argon2

Uses of Hashing:

  • Efficient data lookup in hash tables
  • Password storage in databases
  • File integrity checks
  • Digital signatures
  • Data deduplication

Cryptographic hash functions have additional security properties to resist attacks. They are crucial for many cybersecurity applications.