Is it? I'm not sure.
for the first one you're using lowercase letters (and digits, I'm giving you that 'free')
For the first one we have 36^6 For the second one (all printables) 100^9
Relation between them: ~ 459,393,658. If you're saying scrypt is 100M times better, in this case the second one is safer
And the relation is important but less as computers get faster. Option B may take 1Mi times as long as Option A but if Option A takes 1 microsecond, there goes your Option B as well
Oops, you're right, I got the math wrong when I looked at the table in my paper. I should have said that scrypt can be over 100,000,000,000 times stronger. ;-)
I don't really keep up with that game (like WoW, it seems like a fun game, but only if you are willing to put in a lot of your time), but I think the current limit is somewhere around 8 or 9 characters if you are pulling from all printables, meaning that "H.*W8Jz&r3" with MD5 is probably not breakable right now.
Take off two characters, or wait 3 years, and it probably will be.
In fact, collisions on short passwords are harder than collisions on long passwords. The space of all MD5 outputs is way bigger than the space of 12-character passwords.
But "password" is still grossly insecure in either case, it'll still be the first thing that someone performing a dictionary attack will try. Never tell people how good your key derivation function is, lest they misunderstand and think it means they don't have to chose a non-obvious password/passphrase.
This all can change, but that's the current state of things. Sorry scrypt.
Works as well as any other MRI extension, which is to say pretty well:
jruby-1.7.4 :001 > require 'scrypt'
=> true
jruby-1.7.4 :002 > SCrypt::Password.create("bla")
=> "400$8$2d$096ac4e8a120a4f9$d1e13bbfa387196d68f116d76ae23d0d3ffa39c891192a56832db0a1d8f6a8ec"
Yay for ffi.It's all fairly easy to change, but nobody has done so :)
So not quite "none", though granted being some random third party addon might as well be for many people (and possibly a good attitude to take for something security-critical).
> There's no officially blessed language binding for PHP.
And judging from https://github.com/DomBlack/php-scrypt/issues/9 that's going to stay like that a while. There's a pure PHP implementation that falls back to the pecl package, so that's probably your best bet atm.
But scrypt can be over 100,000,000 time stronger than MD5 -- so if you're using scrypt you can afford to use a password which is 100,000,000 times weaker. "jdtwbv" hashed using scrypt is stronger than "H.*W8Jz&r3" hashed using MD5.