Search code examples
cryptographymd5sha1password-hashcryptographic-hash-function

Is still valid password hashing using md5 or sha1?


Just now I'm working in a financial project. Here, the team is thinking to use MD5 for password hashing. But, today is easy copy a SHA1 or MD5 password to decrypt, inclusive if they are complex password like: My$uper$ecur3PAS$word+448, you might use a online page to decrypt it and there is it. Small and mid-range developers (including me) uses those hashing methods, but I think is not enough to provide security over the database. (Excluding firewalls, network security, iptables, etc.).

Can someone give me a clue about what is the better approach to solve this vulnerability?


Solution

  • Your thinking is correct, MD5 and SHA1 should never be used for password hashing. I would recommend the following, in order of preference:

    • argon2
    • bcrypt
    • scrypt
    • PBKDF2

    If you tag your question with the language/framework you are using, I can recommend specific libraries or methods.

    Also be aware that encryption is not the right word to use here. These are password hashing algorithms, not encryption algorithms.