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