Secure Hash Algorithm (SHA)

Secure Hash Algorithm, or SHA, is a family of cryptographic hash functions used to turn data into a fixed-length string called a hash or digest.

Key properties

  • Deterministic: same input gives the same output

  • One-way: it is not possible to go back to the original data, unless may be with brute-force or rainbow tables

  • Collision resistant: it is hard to find two inputs with the same hash

  • Fast to compute

Common SHA versions

  • SHA-1: a 160-bit hash. It is now considered insecure and should not be used anymore

  • SHA-2:

    . SHA-224 . SHA-256 (very common) . SHA-384 . SHA-512

  • SHA-3: future version

The SHA hashes re commonly used for password hashing and storage (although it is replaced by more modern methods, like bcrypt), file integrity check, signature, git commits (SHA-1).

<?php

    // recommended SHA256 for password
    password_hash($password, PASSWORD_DEFAULT);

    // raw SHA256
    echo hash('sha256', 'The quick brown fox jumped over the lazy dog.');


?>

Documentation

See also SHA1.

Related : git, Hash, Checksum, Crack, Revision