【发布时间】:2019-09-05 13:50:34
【问题描述】:
我正在尝试在我的应用程序中创建密码过期功能。已经设置了密码以及身份验证和更改密码。现在我想在 x 时间后提示用户更改密码。
当用户去更改他们的密码并且我的 Angular 前端发出该请求时,我希望我的 C# 服务堆栈 API 将给定的新密码与当前密码和之前的密码进行比较以检查是否重复。
我不担心细微的变化。例如,如果用户提交相同的密码但多了一个字符,那很好。我想做一个尽可能简单的开始。
密码存储在 MS SQL Server 中的两列 Salt varchar(8000) 和 PasswordHash varchar(8000) 中。我已经完成了所有设置,我对如何将散列密码与用户提供的字符串进行比较感到非常困惑。然后将旧密码保存在新的散列列中。我已经在网络和 SOF 上搜索了三天,但我没有找到任何东西。任何指导将不胜感激。
【问题讨论】:
-
使用新行,而不是新列。您可以像验证它们一样比较它们:根据您的算法对用户条目进行哈希处理并比较哈希值。如果它们不同,则密码不同。
标签: c# authentication passwords servicestack password-hash