https://cryptobook.nakov.com/mac-and-key-derivation/hmac-and-key-derivation
https://cryptobook.nakov.com/mac-and-key-derivation/modern-key-derivation-functions
- All algorithms in passwordmaker except HMAC-sha256 are extremely broken and should not be used. they should be hidden under a "show more" and should have a very scary warning, so that any users still using them will realize how concerning it is and change their main passwords, which they only use with a newer algorithm, so that their main passwords can't be reversed from their generated passwords. Importantly, for anything secure, if you used a main password with an old algorithm, that main password should be considered compromised.
- HMAC-sha256 is concerningly fast, but is sturdy enough that strong main passwords will not be easily reversed from it. Optimized hash brute forcing equipment may still be able to be used to extract a main password from a hashed one, if the main password is weak. It's already implemented, though, so simply putting it at the top as the only sane option given the current implementation would be a good start.
- bcrypt would be acceptable but is not slow on all types of brute forcing equipment.
- scrypt is strong and cannot be practically brute forced in the current era of computer size, even if the main password is somewhat weak and the attacker has significant compute.
Implementing bcrypt or scrypt would require finding a sidechannel-free javascript library which is also fast enough to use, and would not be trivial. However, the first two items are UI changes, so should simply be done and published, to inform any users of the old algorithms of their vulnerability.
https://cryptobook.nakov.com/mac-and-key-derivation/hmac-and-key-derivation
https://cryptobook.nakov.com/mac-and-key-derivation/modern-key-derivation-functions
Implementing bcrypt or scrypt would require finding a sidechannel-free javascript library which is also fast enough to use, and would not be trivial. However, the first two items are UI changes, so should simply be done and published, to inform any users of the old algorithms of their vulnerability.