@Abscissa 
IMHO trying to erase sensitive information inside of a hash is doubtful.The fact that sensitive information is already unencrypted in memory is a weak point. Stretching the point in the same way we may double check all of phobos algorithms that make temporary copies to zero-out memory afterwards since they may be used on "sensitive data".

"Cryptographic" hash implies one thing only - there is no way discovered better then bruteforce to get collissions, preimage and the like, and bruteforce itself is infeasible.
But to iterate on cryptographic hash usages:
1. Digital signature - hash doesn't work on anything sensitive, in fact verifying signature involves hash recalculation from the very same data.
2. Message authentication code (HMAC of a given hash). Here there is something sensitive -a shared plain- text key, but it's stays as plain-text in memory anyway. The key point is not advertising it over the wire.
3. OTP and challenge-response auth. In both cases the deal is in not sharing any sensitive data over the network, not hiding traces of password in the process memory.

There is simply no cure for taking a snapshot of a process memory and mapping it afterwards, and if something "protects" it from that on commodity hardware it is never decrypting it at all. For overcoming that you'd need some serious trusted platform, e.g. some HSM.