22.11.2017, 11:37
Quote:
Why not for security? 128-bit hash value could be good for security(in my opinion).
|
https://codahale.com/how-to-safely-store-a-password/
It's an old article but still relevant.'
some more
https://medium.com/@danboterhoven/wh...s-af330100b861
https://yorickpeterse.com/articles/use-bcrypt-fool/
MD5 and other hashes are so fast that you can literally create millions to billions of them.
MD5 and other SHA already have a library full of hashed strings and their results, it is so unsafe that you can literally googl3 "md5 decrypt" and you'll find websites with billions of records of hash results.
Salt won't save the day, even with salt you can map it up or bruteforce easily.
Take collisions to your advantage, generate similar results etc.
You need to delay requests, you need them to be heavy, you need them so even if its local, it still takes time to find a perfect match, you need them as well to take time randomly and inconsistant
Why? Bruteforce
Why different timings? Because if the hash always work slower with longer characters and your salting gives it a signficient difference, the hacker can easily know how long the password should be.
Some people go as far as calculating the time that takes to hash certain passwords and store a database of timings.
What if two use the same password? the time that takes to compute both of them will be similar?
There are lots of concerns about the security of general purpose algorithms such as md5 and sha.
Use long term solutions, bcrypt or even pbkdf2.
(I heard about scrypt exitence, ain't sure about it)
Whirlpool and other algorithms that produce long results are just a temporary solution until we get faster cpu's and can store more hashes than before.
Quote:
Cryptographic hash algorithms are designed to calculate completly obfuscated hashes, where calculating back is literally impossible. Also small changes to the input needs to create a completly different hash. If none of these criteria is fulfilled, it cannot be used for password security.
|