How to Safely Store Your Users' Passwords in 2016
paragonie.com
How to Safely Store Your Users' Passwords in 2016
1–10 of 321 posts
Re: How to Safely Store Your Users' Passwords in 2016
#2Re: How to Safely Store Your Users' Passwords in 2016
#3Is there something obvious I'm missing here?
Re: How to Safely Store Your Users' Passwords in 2016
#4Anyone have a good explanation of why, in the Python example, they recommend `hmac.compare_digest` instead of `==` for comparison? Is there something obvious I'm missing here?
Re: How to Safely Store Your Users' Passwords in 2016
#5(Title is currently: "How to Safely Store a Password in 2016")
Re: How to Safely Store Your Users' Passwords in 2016
#6Anyone have a good explanation of why, in the Python example, they recommend `hmac.compare_digest` instead of `==` for comparison? Is there something obvious I'm missing here?
hmac.compare_digest is a constant time compare, in that no matter if there is a match or not, it will take the same amount of time.
Re: How to Safely Store Your Users' Passwords in 2016
#7Anyone have a good explanation of why, in the Python example, they recommend `hmac.compare_digest` instead of `==` for comparison? Is there something obvious I'm missing here?
Re: How to Safely Store Your Users' Passwords in 2016
#8Re: How to Safely Store Your Users' Passwords in 2016
#9You can create a worker system, or use a child process to solve this problem, but most of these articles never mention it
Re: How to Safely Store Your Users' Passwords in 2016
#10Anyone have a good explanation of why, in the Python example, they recommend `hmac.compare_digest` instead of `==` for comparison? Is there something obvious I'm missing here?
== in python will stop comparing after the first character mismatch. You can use that fact to test byte by byte your password knowing that the more good characters you have, the longer the comparison will take, which is called a timing attack. hmac.compare_digest is a constant time compare, in that no matter if there is a match or not, it will take the same amount of time.
F("value") > "123455" which is close, but that does not let you get a 'better' guess.
PS: Assuming the Salt is hidden, and the Hash is secure.