You can strip out empty fields with a bit of PHP (creating a new URL without the empty strings), which seems to work okay, but it's probably best not to risk the wrong effect, which is the end program seeing the empty fields wrongly (as NULL and not "").
Thanks lucb1e for pointing it out -- I edited the article to reflect this and I apologize for (temporarily) spreading the misconception that SHA-like functions are good for hashing passwords.
The intention for my article was to analyze the different hash functions, and benchmark them in .NET, and not to discuss anything related to passwords (which would require a blog post of its own, and it's a topic I hadn't extensively researched). I got a little carried away mentioning passwords.
Hash functions are generally designed to be fast. For the very concern you mentioned some people prefer using http://en.wikipedia.org/wiki/Bcrypt to store the password, which on the other hand is designed to be slow.
https://www.startpage.com