你想要的是更一般地称为加密散列函数。密码散列设计为单向(给定生成的散列,您不应该能够导出原始输入)。此外,具有相同散列(称为散列冲突)的两个任意字符串的可能性应该较低(理想地为1 /散列值的数量)。
不幸的是,只是因为您的密码是散列的,不能免除您不必努力保持散列版本的安全。太多的人会使用弱密码,容易受到离线暴力攻击。
编辑 – 几个人也已经指出了使用盐的重要性。盐在使用散列函数之前与输入混合使用的常数值。拥有独一无二的盐可防止离线攻击者使用预先计算的常用密码表(彩虹表)来强制您的密码更快。