故事
我正在使用SQL Server数据库,并且有一个名为aspnet_Membership
的表,它似乎是由ASP.NET生成的。系统的前端不再使用ASP.NET,但仍希望从旧数据库中验证用户。
我知道的
我认为表中的Password
和PasswordSalt
列对于验证用户是必不可少的,但是,我不知道系统中使用了什么加密方法。
密码的示例如下所示:K9YjVGWxF4bPQCvQ8VYA1vbQyCE=
和密码salt如下所示:CM9k+UbZuKTuFxI46vIVIA==
。
还有一个PasswordAnswer字段似乎它使用相同的加密方法,但我不认为它在验证用户方面是重要的。
题
如何通过给定的密码和salt(最好是ExpressJS)对用户进行身份验证?
谢谢
您需要找到用于登录的方法。为此,请打开Web浏览器,转到应用程序的主页面,打开开发控制台并查看“网络”选项卡。然后登录,查看请求的去向,分析代码并找到验证登录的方法。
找到该方法的另一种方法是搜索所使用的ORM的密码字段的用法(如果正在使用ORM),并在注册或设置编辑时查找存储位置,或者在登录时进行身份验证。
如果此操作也失败,则在整个源代码中搜索密码字,并查看是否找到密码验证或密码存储方式。
如果此操作失败,请在源代码中搜索salt的单词,看看是否找到任何有用的结果。
如果失败,则在源代码中搜索login或authenticate等单词。
如果所有这些都失败了,您将需要在搜索中获得创造力,或者向团队中的某个知道答案的人询问。
当您找到一个方法,该方法将String作为密码输入并生成另一个String作为输出并根据您的密码和salt进行检查,然后您找到了您的方法。找到方法后,您只需确保在项目中使用它或实现类似的方式来验证用户。