4 ms·
Well, salted hashed - not exactly "passwords compromised"?
by lcedp 13y ago
Well, salted hashed - not exactly "passwords compromised"?
- harrytuttle 13y agoAs good as. $stored = md5(md5($password) + $salt); That is the simple hash function.
- sirmarksalot 13y agoConfused here. Are you saying that ease of implementation makes it easy to reverse? Or are you agreeing with GP?
- harrytuttle 13y agoSorry it's easy to reverse. There are sites you can just go to and they'll crack the passwords for you in no time at all. Edit: aware of rainbow tables and salts and how hashes work etc etc. They are easy to crack if on password lists which they mostly are these days if you have a shit password which is 90%+ of us. Not only that, the $salt on a good chunk of vbulletin sites from vb2 days is not a strong salt. Go here to get people to crack passwords for you: http://forum.md5decrypter.co.uk/default.aspx http://forum.md5decrypter.co.uk/default.aspx With respect to the feasibility, it's really easy to do an md5 and you don't just do the whole list, you pick interesting email addresses and start there.
- irahul 13y agoThe purpose of the salt is to invalidate rainbow tables. With salt, the only way to reverse is to compute all combinations. With advances in GPU, it has become easier for some hash functions, but it easnt' easy to reverse by any measure. What are these sites which will crack the passwords in no time? Try reversing this: 38b2cf16f7be6a1b33097084bed6a4b0:lsdjfldsjlfds
- deleted 13y ago[deleted]
- michaelt 13y agooclhashcat-plus [1] claims to perform 6.9 billion MD5 hashes per second on an AMD hd6990 ($900 from Amazon). Assuming the password is eight lower case letters, you can try them all in (26^8)/(6.9 billion) = 30 seconds. Even if the password is eight alphanumeric digits, you can try them all in ((26+26+10)^8)/(6.9 billion) = 8.7 hours. Now admittedly, many users will have more than 8 characters in their passwords, and 8 hours to crack a single account isn't that bad I mean it could be a lot worse, and it's only a forum so no exactly critical infrastructure. However, by the standards of security systems (where we're used to hearing that brute force attacks will take longer than the age of the universe) MD5 is pretty weak. [1] http://hashcat.net/oclhashcat-plus/ http://hashcat.net/oclhashcat-plus/
- elchief 13y agoit's asdfasdf
- irahul 13y agoUmm...no. In [17]: '38b2cf16f7be6a1b33097084bed6a4b0' == hashlib.md5('lsdjfldsjlfds' + 'asdfasdf').hexdigest() Out[17]: False
- codeflo 13y agoIf it's on a password list.
- bigiain 13y agoOr its less than 8chars against an attacker with a single laptop, or 10 chars against an attacker with a modern GPU, or 12 chars against a criminal gang with access to a few hundred GPUs, and I suspect you want at least 15 or 16 chars to feel reasonably future-proof against a nation-state level attacker, and I'm guessing 20chars is enough to ensure the NSA gets out the $5 wrench instead of powering up the supercluster to crack your password. Hashcat is _fast_. It's unlikely the NSA is many of orders of magnitude faster though. I'm happy enough with my 25 random char passwords generated and stored in 1Password.
- leeoniya 13y agono, it's not easy to reverse. though if the password was a common one or occurs in a dictionary, it is easier to reverse. and no, they cannot be cracked in 'no time'.
- bigiain 13y agoIf by "no time", you mean minutes or hours on a typical laptop - hashcat will rip through vbulletin hashes almost as fast as to goes through plain MD5. A journalist[1] got 45% of a list of 17,000 MD5 hashed passwords on his MacBook Air (just CPU hashing no GPU) - in 90 seconds. It's entirely justifiable to expect vbulletin hashes to fall no slower than twice that time. Even using random passwords - which means "non-dictionary words (including guessable letter/symbol substitution and leading/trailing digits)" - you still need to be aware of the abilities of modern password cracking tools. Hashcat with a modern gaming video card can do almost 7billion MD5 hashes per second, which'll search the entire 7char password space in something like 90- seconds - or the entire 9char password space in under 9 days. 11 characters gets you up to a _probably_ acceptable 194 years - against a single GPU attacker, the hashcat code will run on 128GPUs at once, which drops that to only ~18months against a well funded attacker (probably "criminal enterprise" level well funded, well short of "nation state" level). With the Apple password breach - you'd be foolish to not assume criminals could muster hundreds of GPUs to crack passwords that'd give them working iTunes accounts (you give me a couple of tens of thousands of active credit card linked iTunes accounts, and I could think of many ways to turn that into many hundreds of thousands of dollars of revenue for some unscrupulous app developer.) I'm hoping Apples passwords were more securely hashed than salted MD5, but if you were using a less than 10 char password, I'd be changing it immedialtely. Even less that 12 chars might not be safe in a 12 month timeframe... But you aren't going to remember 11char random passwords anyway, so use a tool (1Password/Lastpass/Keypass/etc) and then there's no point _not_ using 16 or 20 or 25char or longer passwords. Anything less than 9 random chars pretty much _can_ be cracked "in no time" - any valuable passwords less than 12 chars should be considered "weak". 1. http://arstechnica.com/security/2013/03/how-i-became-a-password-cracker/ http://arstechnica.com/security/2013/03/how-i-became-a-passw...
- riquito 13y agoBoth MD5 and the algorithm are weak. When you can crunch 180 billions of MD5 hashes per second [1] a long password will not save you [1] http://www.zdnet.com/25-gpus-devour-password-hashes-at-up-to-348-billion-per-second-7000008368/ http://www.zdnet.com/25-gpus-devour-password-hashes-at-up-to...
- eksith 13y agoThat would have been standard 10 years ago, but these days, it's not very effective and, unfortunately, it's still a very common scheme. You're better off with: function rHash( $rounds, $data, $salt ) { $data = $data . $salt; while( $rounds > 0 ) { $data = hash( 'tiger160,4', $data ); $rounds--; } } And call $stored = rHash( ( registered month + year ), $password ); Or even the trusty old... $stored = crypt( $password, '$2y$14$' . $salt . '$' ); If you're on PHP > 5.4 ( some hosts are still on older versions ), you should check out password_hash() : http://php.net/manual/en/function.password-hash.php http://php.net/manual/en/function.password-hash.php Edit: Fixed some typos.