Rules
Minimum length of either 8 or 16 characters.
A maximum length of 2,048 characters.
Check if password is in breaches? (optional)
...
For further actions, you may consider blocking this person and/or reporting abuse
Why would you do this?
Bcrypt and Argon2 are already great hashing functions, encrypting the hashes will provide no benefits while hurting performance.
Because, I'm just like that. And I've read elsewhere that it isn't bad to do something like that. From a valuable source regarding security.
And that's the thing, most developers don't take the extra step. I do. And you might say it brings down the performance, and yes it does. But not by much if you're doing it right. And I've run some tests, and it doesn't make that much of an impact on performance, especially since AES is pretty fast compared to some of the other encryption algorithms.
The important part of hashing passwords is for them not to be reversible.
The extra step is salting those.
Encrypting them does not provide any security benefits, other than perhaps having two secret keys in different areas (salt in database, AES secret hardcoded in code), but makes everything else harder.
You're right, the password shouldn't be reversible. It's not, because it's hashed before it's encrypted. As said in the resource above, it's realistically not much securer than the hashing algorithm.
It just makes it a pain for anyone trying to steal user passwords. Meaning they have to decrypt it someway(exploiting the server and executing code to decrypt, being one way, or getting the encryption key), before they can even deal with the hashes.
I believe that a decent hashing algorithm with a salt and peppering, along with decent encryption provides the same security(if not better) over just plain decent hashing with a salt.
Also, here is the source.
See, they do it. FYI, the people who made it are amazing.
And actually, yes it does have benefits, in my opinion.
From this source:
The downsides are not worth it IMO, but it still is a nice resource to have.
Yeah it still is nice to have it.
Because this way, if they lift the whole password database at rest, they still need to decrypt it to even see the usernames or start trying breached/short passwords.
I understand what you mean. I was just recommending some things. I have it set for 2,048 because some password managers have really long passwords. Again, 2,048 is a bit long for a password ... but if say a password manager supports that kind of length, it'd be nice for it to be supported.
And yes I know that 2FA and login attempt limitation would greatly improve the security.
Hey, thanks for the feedback. :D
Personally I would not allow less than 12 characters in a password, 8 is now easy to crack with enough computer cpu... just my 2 cents.
I really recommend to read some of or all articles on this series troyhunt.com/tag/passwords/
I agree. Over time I had changed my view on passwords and gathered more information. I'll probably write a new post and close this one off.