保存密码的方法基本有三种,各种方法在安全性以及开发人员、管理员和用户易用性之间有着不同的均衡:

      1.对于开发人员和管理者来说,最简单的方法是把密码以普通文本的方式保存在数据库字段中。这对用户也是很方便的,因为当用户遗失密码时可以交密码通过E-mail发送给用户。然而这种方法的安全性最低,因为所有的密码保存为普通文本,如果数据库受到黑客攻击,黑客很容易获得每个用户的密码。因此需要非常小心地看管好数据库以及数据库备份文件。

      2.要加强密码存储的安全性可以在将密码保存到数据库之前对它进行加密。有很多种加密方法,最常用 的是对称加密,该方法使用系统保护密码对所有用户密码加密。这是一种双向加密,可以对密码加密也可以以后对其解密。这对开发人员来说易用程度为中,但对用户来说还是非常好用的,因为能够将忘记的密码通过电子邮件来发送。

      3.最重量级的安全保护是一种能够防止管理员和开发人员获取用户密码的加密方式。它使用被称为哈希的单向加密,可以使用一个已知的算法对密码进行哈希编码从而对密码加密,但无法解密。因此,需要保存密码的哈希编码,以后当用户再次登录输入密码时,对输入的密码执行相同的哈希算法。然后同数据库中保存的哈希编码进行对比,如果匹配,则认为用户输入的密码是正确的。这对于开发人员、管理人员、用户来说不太方便,因为无法通过电子邮件发送丢失的密码。当用户丢失密码后,只能重新设置一个密码然后再对密码进行哈希编码保存到数据库中。(金融数据常用这种加密方法)