为什么要在数据库中存储纯文本或加密(非散列)密码?

Ear*_*rlz 5 database security encryption passwords

我听说过在数据库中存储散列密码的原因有很多.但是,在身份验证API中几乎总有选项可以将密码存储为纯文本或加密.

您是否有理由将密码存储为纯文本或在数据库中加密?

注意要明确我知道存储非散列密码几乎总是坏的.(据我所知)我的问题是为什么大多数身份验证API都包含将密码存储为加密或纯文本的选项.

And*_*per 6

我能想到的一个原因是允许密码恢复选项.无法恢复系统不知道的密码.

当然,替代方案是系统只需将密码重置为新密码并向您发送新密码.


pok*_*oke 6

我能想到的唯一真正原因是数据库属于一个本身就是真实应用程序的系统.就像你有程序为你登录的东西(电子邮件客户端,即时通讯客户端等).所有这些都必须以可恢复的方式存储密码才能获得访问权限,因为目标应用程序不会通过工具真实用户用户之间做出决定.正是在这一点上,OAuth和alikes一样,都是为了保存用户的密码.


Kob*_*obi 5

也许你是一个黑客,想要使用或出售它们? 这种情况发生的前几次会很有趣.