Passwords & hash functions (Simply Explained)

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 29. 08. 2024
  • How can companies store passwords safely and keep them away from hackers? Well let's find out!
    With all the data breaches lately, it's likely that the password of one of your accounts has been compromised. Hackers now might know the password you've used, but they also might not.. To understand why, we'll take a look at what methods a company can use to protect user passwords. We'll take a look at encryption, hash functions and a multilayer approach!
    📚 Sources
    Can be found on my website:
    savjee.be/vide...
    🌍 Social
    Twitter: / savjee
    Facebook: / savjee
    Blog: savjee.be
    💌 Newsletter: newsletter.savj... (no more than once a month)
    ❀ Become a Simply Explained member: / @simplyexplained

Komentáƙe • 200

  • @tar509
    @tar509 Pƙed 4 lety +56

    We were just shown this as a part of an information systems security lecture, I figured I'd actually go ahead and give it a like because it's simple and informative

  • @siddharthgarg1985
    @siddharthgarg1985 Pƙed 6 lety +108

    Brilliant video.. I love how you explain such complex concepts in a simple manner.. Please keep up the good work

    • @vz7742
      @vz7742 Pƙed rokem +2

      good mornin sir!

  • @Logical-Sense
    @Logical-Sense Pƙed 6 lety +83

    Keep up the good work mate, it was informative.

  • @RubeniAlimasi
    @RubeniAlimasi Pƙed 2 měsĂ­ci +1

    Learned a great deal of things thanks to this video. Thank you.

  • @BobbyBundlez
    @BobbyBundlez Pƙed 4 lety +6

    AMAZING. really appreciated you goign through drop Box's encryption method.
    started coding 8-9 months ago, doing JS now and just started learning how to use the scrypt function as well as salting passwords etc... watching this video made me excited for all the deeper things you can do... maybe one day i shall make it a goal to recreate and code that level of password security like dropbox has! cool vid. thanks again
    anyone wanna share their experience with coding thus far? anyone think im doin ok learning this stuff after 8 months? or am i behind.... lol... sometimes i can't tell tbh
    i still love learning all this stuff regardless lol

  • @md.riyasathossain590
    @md.riyasathossain590 Pƙed 4 lety +7

    Thank you, Sir! It did helped me a lot in learning how hash functions actually work! And also Thank You for simplifying the concept!

  • @kgreene104
    @kgreene104 Pƙed 5 lety +5

    Good job. Studying for Security+ exam here and the cryptography has been one thing I've found it hard to get into. It helps to have different explanations of it.

    • @drrider100
      @drrider100 Pƙed 5 lety

      Agree. Getting ready to take mine. The more I read the more confusing it is for me. But this video just explained it all. I am no. Longer confused.

  • @jakub9640
    @jakub9640 Pƙed 2 lety +1

    Cyber Security Dev: So which password protection do you want to use?
    Dropbox: y e s

  • @rahulbiswas9971
    @rahulbiswas9971 Pƙed 4 lety +2

    the channel name is perfect
    thanks dude. 💖

  • @tomgi859
    @tomgi859 Pƙed 3 lety +2

    Awesome video, very friendly and pleasant to watch! about dropbox- if they're not saving the keys in their db's, where do they save them? physical devices maybe?

  • @Lallushe
    @Lallushe Pƙed 3 lety

    Wow, I can't believe how well you explained that! Thank you sir!

  • @ziomanzo
    @ziomanzo Pƙed 5 lety +2

    You really explain things simply ✌

  • @walterlol
    @walterlol Pƙed 3 lety +3

    Excellent video but I am not understanding something:
    You use salt to generate a unique hash from a password (string).
    When a user re-logins and you want to see the hash of his password you would also have to RE-ADD that same "unique salt" that was given when the user created the account. How do you know that "unique salt" if it was randomly generated?

    • @ifqi.r
      @ifqi.r Pƙed 2 lety

      Same I don't understand this

    • @Maxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      @Maxxxxxxxxxxxxxxxxxxxxxxxxxxxx Pƙed 2 lety

      You store the hashed password with the salt
      When you login, it checks if your login user/email exists in the db, if yes, then it adds the salt to the password you typed, then hash the combination and check with the hash

    • @walterlol
      @walterlol Pƙed 2 lety

      @@Maxxxxxxxxxxxxxxxxxxxxxxxxxxxx What if I get access to the salt you used to store the password? Isn't that a single point of failure?

    • @Maxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      @Maxxxxxxxxxxxxxxxxxxxxxxxxxxxx Pƙed 2 lety

      @@walterlol yes but for that to happen, they would've already got access to your database.
      I probably forgot to mention that the salt is usually 32byte or 64byte

  • @declanz5067
    @declanz5067 Pƙed 3 lety

    Awesome video - very easy to understand and succinct, it flowed well too - very helpful thank you!

  • @maliqattan
    @maliqattan Pƙed 2 lety

    Very nice descreption. Loved it. Thank you very much ❀❀❀

  • @flowerofash4439
    @flowerofash4439 Pƙed 2 lety

    clear and easy to understand this is perfect

  • @Lukas-kh5gu
    @Lukas-kh5gu Pƙed 6 lety +11

    amazing video. learnt a lot, going to share :-)

  • @MiRaje8086
    @MiRaje8086 Pƙed 4 lety +1

    This is awesome man, thanks for explaining.

  • @LuisFelipe-pq9lr
    @LuisFelipe-pq9lr Pƙed 6 měsĂ­ci

    This video was incredible, thank u so much

  • @tymothylim6550
    @tymothylim6550 Pƙed 3 lety

    Thank you very much for this video! Certainly learnt a lot from this and would be learning more about it in detail :)

  • @0_-
    @0_- Pƙed 4 lety

    This is the first video I saw of you!

  • @JavaScriptRoom
    @JavaScriptRoom Pƙed 6 lety +1

    Great as always! Please keep sharing such a good stuff!

  • @robertogarcia4637
    @robertogarcia4637 Pƙed 4 lety +3

    thank you very much for the instructional - learned a lot (specially w/the salt & cost things). Nice !!! Furthermore, your voice is very pleasant so double congrats!

  • @GloryRay
    @GloryRay Pƙed 6 lety

    Great job. I love every single one of your videos!

  • @basmamp4834
    @basmamp4834 Pƙed 3 lety

    Very informative one.. Liked it.. Well explained!! 💯

  • @maxmenius1319
    @maxmenius1319 Pƙed 3 lety +4

    They should make a hash system that resets every hour

    • @MorphTW
      @MorphTW Pƙed 5 měsĂ­ci

      How would you check input password with the one you entered on registration? 😊

  • @DayTradingCourse
    @DayTradingCourse Pƙed 4 lety

    Excellent and clear explanation.

  • @suyashraut142
    @suyashraut142 Pƙed 4 lety

    very informative . best explanation .
    keep it up!!!

  • @sebastiendebons421
    @sebastiendebons421 Pƙed 6 lety

    Very interesting video ! Thank you for all this nice work.

  • @Jeanmims
    @Jeanmims Pƙed 4 lety

    Very clear explanation , well done

  • @rosalyna_24
    @rosalyna_24 Pƙed 3 lety +1

    thank you so much for this vid it is very informative

  • @govindmenon2196
    @govindmenon2196 Pƙed 6 lety +5

    Savjee next video should be about delegated proof of stake

  • @marcusswedin
    @marcusswedin Pƙed 4 lety

    Reallly informative! Thanks!

  • @swapniljoshi1033
    @swapniljoshi1033 Pƙed 3 lety

    Explained very simply thank you

  • @browneyedbabes7863
    @browneyedbabes7863 Pƙed rokem

    awesome video! Thank you!

  • @dev-bv5zg
    @dev-bv5zg Pƙed 4 lety +1

    I use a extremely long custom hashing method for my server that uses many variables indented to that user only

  • @Sergio0694
    @Sergio0694 Pƙed 6 lety +2

    Nice video!
    I have a question: what about saving each password with its encrypted version, using the password itself as encryption key?
    This way each stored password would have a unique encryption key, instead of a single AES key shared among all the saved passwords.

    • @neoxr9655
      @neoxr9655 Pƙed 2 lety

      But how would you store the key? That kinda just adds an unnecessary step without gaining anything

  • @osiris5449
    @osiris5449 Pƙed 5 lety

    My encryption/decryption algorithms I have (for PHP) take in a string, add some salt, some hashing and then locks it with a key then encrypts or decrypts that with a very “quarantined” password that’s been... Treated. It’s strong asf.

  • @MisterSkraetsch
    @MisterSkraetsch Pƙed 5 lety +1

    nice video and very well explalined - thanks a lot!!!! :)đŸ˜đŸ‘âœŒïž

  • @TastySanchez
    @TastySanchez Pƙed 4 lety

    Wow so interesting. Really enjoyed this vid

  • @JamieWFilms
    @JamieWFilms Pƙed 4 lety

    Amazing video, thank you so much mate!

  • @chinonsoiwundu5782
    @chinonsoiwundu5782 Pƙed 3 lety +1

    You mentioned something about encryption key being kept separately, how can it be queried to work on the web application? Kindly put more light

  • @abdullahsultan6024
    @abdullahsultan6024 Pƙed 6 lety

    It's very nice video.. thanks for your efforts and keep it going

  • @ImranPollob
    @ImranPollob Pƙed 2 lety

    Excellent explanation

  • @Lollipop2018
    @Lollipop2018 Pƙed 4 měsĂ­ci

    Wow. perfect video!!

  • @Alternox
    @Alternox Pƙed 3 lety

    this video is underrated

  • @UltirianHeavyIndustry
    @UltirianHeavyIndustry Pƙed 3 lety

    Simple and explains a lot thank you :)

  • @limontec
    @limontec Pƙed 6 lety

    Excellent work

  • @dhliu9687
    @dhliu9687 Pƙed 2 lety

    Thank you sir Nice explain !!! thumb up

  • @danielmihajlovski
    @danielmihajlovski Pƙed 2 měsĂ­ci

    Change the unique hash stored on the database for the same password the user uses, every time the user signs in?

  • @iceman71true12
    @iceman71true12 Pƙed 5 měsĂ­ci

    so regardless of the fact that each of these different methods can be breached, best course of action is to have two forms of logging in to your account a text message to your phone that you have to input when logging in to an account.

  • @shotx333
    @shotx333 Pƙed 4 lety

    Very well explained, thanks

  • @saidkarimsaidmahmudov3048
    @saidkarimsaidmahmudov3048 Pƙed 5 lety +1

    Well, it was really helpful video

  • @chriseaguilar7
    @chriseaguilar7 Pƙed 2 lety

    Great video!

  • @midhatbasit7306
    @midhatbasit7306 Pƙed 2 lety

    Best explanation

  • @parta_usti6219
    @parta_usti6219 Pƙed 6 lety +1

    Well explained!
    Why don't companies put a limit on number of login trials a computer can have? For example, can't they just reject the user for a limited period of time if they enter totally wrong credentials?

    • @simplyexplained
      @simplyexplained  Pƙed 6 lety +4

      Sure they can! But in this video I'm talking about a scenario in which an attacker has managed to breach the database and has all the (hashed) passwords in his possession.

    • @jamesedwards3923
      @jamesedwards3923 Pƙed 5 lety

      Ahh , that is not what he is talking about. If somebody stole the database of passwords. That is what he is referring to.
      For example a keypass file. Is a store of encrypted passwords. If somebody stole my drive and got them. They can pound on it forever. Eventually I will be long dead and turned to dust. The reason 'Dropbox' does all this is not just for a website long in. It is in case somebody steals the hashed and encrypted storage.
      You still have a lack of understanding about how this works. As far as the end user logging into a website.

  • @datag1199
    @datag1199 Pƙed 2 lety

    Great video - thank you

  • @ahmedaj2000
    @ahmedaj2000 Pƙed 3 lety

    thank you, very clear!

  • @youssefAbdelMagid
    @youssefAbdelMagid Pƙed 4 lety

    very good video , I learned the concepts in a very good way... can you kindly do a simple javascript project to make the 3 kind of protection (hashing + bcrypt + encryption) to show us how to do it practically as well

  • @junelljabrica5954
    @junelljabrica5954 Pƙed 3 lety +2

    If there are numerous layers of protection around the passwords then how can the system check whether the password you've entered is correct?

    • @alejandrod.2036
      @alejandrod.2036 Pƙed 3 lety +2

      In the Dropbox example, its Encryption => bcrypt => Hash => Password. Essentially, they work backwards.
      First, they receive your password in plaintext which you enter into whatever login screen. Then, they hash it, and then use bcrypt on it. They will then retrieve the stored password hash from their databases, and decrypt it. At this point, the password you sent to them has been hashed, and bcrypted, and the password they stored has been decrypted, so if they are the same password, it should be equal. If they are equal, then that means you entered the correct password.

    • @junelljabrica5954
      @junelljabrica5954 Pƙed 3 lety +1

      Ohhh thank you

  • @PaulinaJuba
    @PaulinaJuba Pƙed rokem

    Is hashing possible for other things like live facial recognition or fingerprints?

  • @Davegbuf
    @Davegbuf Pƙed rokem

    Excellent video and explaining the technology. However, I have a situation where I don't know how I would adapt the concepts you explained because the scenario is slightly different. Your example works interactively by comparing user passwords with stored hash values. My scenario is for an automated process (no user interaction at all) and the credentials are self-contained in the program package. These must not be known to the user or anyone who can get a hold of the file(s) containing them.
    Here is a live example 
 We have a company application that requires administrative rights to execute but our users only have standard Windows user permissions. I repackaged the application into a single EXE executable script to conceal the admin credentials that are included in the script code. However, I discovered that compiling the script is not enough because the EXE file can be decompiled or someone can use other programs to see the contents.
    How can I adapt the concepts you explained in your video this my scenario? I need to be able to execute a self-contained application package locally (no network or internet resources) and with specific credentials while protecting said credentials from the local user or anyone who might get a hold of the EXE file containing the credentials. The application needs to use these credentials at run time to perform its tasks.
    Your insight is most appreciated.

  • @lynnelenatorbay1450
    @lynnelenatorbay1450 Pƙed 3 lety

    Great video! thanks

  • @humayunnaveedkhan1281
    @humayunnaveedkhan1281 Pƙed 3 lety

    very well explained

  • @eswarprasad9773
    @eswarprasad9773 Pƙed 4 lety

    Not only to maintain unique hashes...salting also provides extra security for example you can either append or prepend salt data..that requires lot of effort from hacker to figure out

  • @TuxHouseEdu
    @TuxHouseEdu Pƙed 3 lety

    Thank you

  • @JagadishTalluri
    @JagadishTalluri Pƙed 5 lety

    Keep up the great work..!

  • @himanshu4807
    @himanshu4807 Pƙed 2 lety

    wow......thank you so much...keep it up plzzz

  • @MrRigdensChannel
    @MrRigdensChannel Pƙed 6 lety

    Nice work. Thanks for helping to clear this up.

  • @elasriabdelhamid5659
    @elasriabdelhamid5659 Pƙed 4 lety

    Very educative video :)

  • @ozzyfromspace
    @ozzyfromspace Pƙed 3 lety

    When you put up that list of the top 10 passwords, I was like, “been there, done that” 😂. These days I let my Apple devices generate and store codes for me

  • @Vagelis_Prokopiou
    @Vagelis_Prokopiou Pƙed 6 lety

    Nice video man.

  • @jason_samosa
    @jason_samosa Pƙed 3 lety

    Excellent content

  • @omarelalaoui7591
    @omarelalaoui7591 Pƙed 5 lety

    thank u man it helped a lot ...!

  • @lucasguaru
    @lucasguaru Pƙed 3 lety

    Man, great job there. How do you do it? I would love to the the animations in portuguese. I feel it's missing here in Brazil the way you explain.

    • @hamza-325
      @hamza-325 Pƙed 3 lety

      @@simplyexplained4601 You are a scammer! What a dirty technic to use the channel name and icon to do your black business.

  • @w0ttheh3ll
    @w0ttheh3ll Pƙed 2 měsĂ­ci

    great video

  • @kds-2049
    @kds-2049 Pƙed 4 lety +3

    So you hash your plain text password using 'salt' and 'cost'. This means every password that's the same plain text is different.
    But when comparing the password that you use to login, should you use the exact same salt and cost to hash that same plain text password?
    This means you should keep the salt and hash (and cost if it isn't a constant) for every user.
    Am I correct in this? This isn't explained in the video sadly.

  • @beholdandfearme
    @beholdandfearme Pƙed 3 lety

    How secure is smashing the keyboard at random while alternating the shift key?

  • @hashrate207
    @hashrate207 Pƙed 5 lety

    Good work.

  • @seixasribeiro6715
    @seixasribeiro6715 Pƙed 3 lety

    thank you so much.

  • @dankelly
    @dankelly Pƙed 6 lety +2

    Where/how do you store the salt and cost do you can use it when the user tries to log in?

    • @simplyexplained
      @simplyexplained  Pƙed 6 lety +1

      You can store the salt in your database with the hashed password. And if you're using bcrypt, the hash, salt and cost are all in 1 string.

    • @dankelly
      @dankelly Pƙed 6 lety

      Simply Explained - Savjee Thanks. If I store the salt in the database (the same one that a hacker just got access to) how is that secure?

    • @simplyexplained
      @simplyexplained  Pƙed 6 lety +4

      It just ensures that each hash is unique and that cracking attempts can't be speeded up with tricks like rainbow tables.

  • @IchwanulFadhli
    @IchwanulFadhli Pƙed 5 lety

    Just like the channel's name, Simply Explained!

  • @philipg.5316
    @philipg.5316 Pƙed 5 lety

    So awesome!

  • @SilentPixel
    @SilentPixel Pƙed 4 lety

    [Hash + salt] Question:
    How can you compare passwords if the hash alters when entering the same password?
    ex.
    Bob and Vagene have the same passwords "sendNudes". Both will have different hash. Bob logs in. How would you compare Bob's inputted password to the one in storage?
    This has been eating at me! I NEED ANSWERS!!! pls

  • @TravelNomad
    @TravelNomad Pƙed 6 lety

    Awesome, thank you :)

  • @quintonconoly
    @quintonconoly Pƙed rokem +1

    nice!

  • @sollertia_
    @sollertia_ Pƙed 5 lety

    If hash functions are one-way? Does that mean that they are many-to-one functions? If that's so, it's possible to enter your account with a totally different password with the same calculated hash?

    • @sollertia_
      @sollertia_ Pƙed 5 lety

      @XOP Systems I see... Totally irreversible security sounds too good to be true

  • @Fluli
    @Fluli Pƙed 5 lety +1

    How do they compare the hashes if there is random salt?

    • @joyanfernandes
      @joyanfernandes Pƙed 5 lety

      Salt is stored seperately alongside the password..

  • @lucasguaru
    @lucasguaru Pƙed 3 lety

    On 4:38 you said to use different salt but I can't see it happening. If I use different salt, when I have to check the password, I would not know the used hash. If I keep it on the database, I would have the same problem as leaking the password. What I'm missing?

  • @amicam5459
    @amicam5459 Pƙed 2 lety

    brilliant

  • @theuberlord7402
    @theuberlord7402 Pƙed 3 lety

    The Imgur incident is misrepresented in this video. They did not store the passwords in plaintext, the hashes were solved and leaked.

  • @MrShika666
    @MrShika666 Pƙed 5 lety

    keep up the good work :D

  • @rain_altman_009
    @rain_altman_009 Pƙed 6 měsĂ­ci

    NICE VIDEO

  • @ramanabalachandhran
    @ramanabalachandhran Pƙed 4 lety

    Thanks a lot for the succinct adumbration. And by the way.
    04:11 ROFL 😂

  • @xMAJxgames
    @xMAJxgames Pƙed 3 lety

    Thanks 👌👀

  • @sibincbaby
    @sibincbaby Pƙed 6 lety

    thank you 😍

  • @pcosgrove52
    @pcosgrove52 Pƙed 7 měsĂ­ci

    thanks agfain...

  • @LiEnby
    @LiEnby Pƙed 4 lety

    on 'TamaTown Rewrtten' ii do sha512 then xor the resulting hash with some random bytes then sha512 it again
    the original game however stored them in plaintext as there reset pass thing expects to just.. get the password back

  • @user-tt7jz1tz6c
    @user-tt7jz1tz6c Pƙed 4 lety

    i was wondering how to make a vivid video like this, what kind of software tool

  • @joeldagatan5845
    @joeldagatan5845 Pƙed 5 lety +1

    and how i know my hash code??