进行身份认证的系统都一定有一套验证输入密码的机制，如果这些密码只是简单地以明文储存在系统上，一个拥有足够权限的攻击者就可以获取在系统上储存的所有用户名和密码，使得整个系统向攻击者敞开，甚至会危及其他使用同样或相似的密码的系统。一个减少危险的办法就是用密码散列函数加密密码。诸如SHA的函数是很难由散列值算出原文的，一定程度上防范了攻击。然而攻击者可以用碰撞的方法猜测明文，如今的密码破解程序也可以通过暴力破解的方式从散列值找出明文密码。日益进步的计算机科学也加快了测试密码的速度。2007年8月，公司发明了使