Just take the string as bytes and hash it ffs

  • Carighan Maconar@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    13
    ·
    24 days ago

    And sure, in theory your hashing browser-side could break if you do that. Depending on how much text the user pastes in. But at that point, it’s no longer your problem but the browser’s. 🦹

    • owsei@programming.dev
      link
      fedilink
      English
      arrow-up
      18
      ·
      24 days ago

      Why are you hasing in the browser?

      Also, what hashing algorithm would break with large input?

        • owsei@programming.dev
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          24 days ago

          Damm, I legit didn’t knew there bcrypt had a length limit! Thank you for another reason not to use bcrypt

          • frezik@midwest.social
            link
            fedilink
            English
            arrow-up
            3
            ·
            24 days ago

            Scrypt has the same limit, FWIW.

            It doesn’t matter too much. It’s well past the point where fully random passwords are impossible to brute force in this universe. Even well conceived passphrases won’t get that long. If you’re really bothered by it, you can sha256 the input before feeding it to bcrypt/scrypt, but it doesn’t really matter.

        • candybrie@lemmy.world
          link
          fedilink
          English
          arrow-up
          15
          arrow-down
          1
          ·
          edit-2
          24 days ago

          Because then the hash is the password. Someone could just send the hash instead of trying to find a password that gets the correct hash. You can’t trust the client that much.

          You can hash the password on both sides to make it work; though I’m not sure why you’d want to. I’m not sure what attack never having the plain text password on the server would prevent. Maybe some protection for MITM with password reuse?

        • frezik@midwest.social
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          24 days ago

          Per your edit, you’re misunderstanding what Bitwarden does and why it’s different than normal web site password storage.

          Bitwarden is meant to not have any insight into your stored passwords what so ever. Bitwarden never needs to verify that the passwords you’ve stored match your input later on. The password you type into Bitwarden to unlock it is strictly for decrypting the database, and that only happens client side. Bitwarden itself never needs to even get the master password on the server side (except for initial setup, perhaps). It’d be a breach of trust and security if they did. Their system only needs to store encrypted passwords that are never decrypted or matched on their server.

          Typical website auth isn’t like that. They have to actually match your transmitted password against what’s in their database. If you transmitted the hashed password from the client and a bad actor on the server intercepted it, they could just send the hashed password and the server would match it as usual.

        • frezik@midwest.social
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          1
          ·
          24 days ago

          With comments like this all over public security forums, it’s no wonder we have so many password database cracks.