Skip to main content

Module 6.4: Password hashing

Hashing:

A hash takes any input and turns it into a long sequence of letters and numbers.

Example:

  • "mypassword" → ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f
  • Why do we use it?
  • To store passwords safely
  • To check file integrity (if a file changes at all, the hash will completely change)


An example is SHA256, try it out:

https://emn178.github.io/online-tools/sha256.html

type in your name or anything you want, then change just one letter and see what happens

I made one for testing:

da355c585ad36b98017d11ed3fd05199acbb2855345dc463f61fc42fdf6656c9

is a SHA256  hash of Toomanysecrets77

Challenge:

  1. repeat the hash with the same password using different encodings: MD5, SHA256, SHA512
  2. what do you notice?

Encryption:

Encryption takes an input and gives you the encrypted version along with a specific key to decrypt it.

Types of Encryption:

1. Symmetric Encryption (One key)

a. The same key is used to encrypt and decrypt (lock and unlock)
b. Fast and easy to use
c. Since there is only one key, sharing the key with people has to be done
safely

2. Asymmetric Encryption (Two keys)

a. You have a public key and a private key
b. Anyone can use your public key to lock a message for you
c. Only your private key can unlock it

Some examples of people/businesses that use encryption are:

  • Messaging apps (WhatsApp, iMessage, Signal)
  • Banking websites (Chase, Wells Fargo, etc)
  • Cloud services (AWS, Azure, GCP)

Tools:


Migrated from Apple Server Wiki. Original page ID: W0N6N6