在不知道加密方法的情况下通过给定密码和盐验证用户

问题描述 投票:0回答:1

故事

我正在使用SQL Server数据库,并且有一个名为aspnet_Membership的表,它似乎是由ASP.NET生成的。系统的前端不再使用ASP.NET,但仍希望从旧数据库中验证用户。

我知道的

我认为表中的PasswordPasswordSalt列对于验证用户是必不可少的,但是,我不知道系统中使用了什么加密方法。

密码的示例如下所示:K9YjVGWxF4bPQCvQ8VYA1vbQyCE=和密码salt如下所示:CM9k+UbZuKTuFxI46vIVIA==

还有一个PasswordAnswer字段似乎它使用相同的加密方法,但我不认为它在验证用户方面是重要的。

如何通过给定的密码和salt(最好是ExpressJS)对用户进行身份验证?

谢谢

javascript asp.net express authentication password-encryption
1个回答
1
投票

您需要找到用于登录的方法。为此,请打开Web浏览器,转到应用程序的主页面,打开开发控制台并查看“网络”选项卡。然后登录,查看请求的去向,分析代码并找到验证登录的方法。

找到该方法的另一种方法是搜索所使用的ORM的密码字段的用法(如果正在使用ORM),并在注册或设置编辑时查找存储位置,或者在登录时进行身份验证。

如果此操作也失败,则在整个源代码中搜索密码字,并查看是否找到密码验证或密码存储方式。

如果此操作失败,请在源代码中搜索salt的单词,看看是否找到任何有用的结果。

如果失败,则在源代码中搜索login或authenticate等单词。

如果所有这些都失败了,您将需要在搜索中获得创造力,或者向团队中的某个知道答案的人询问。

当您找到一个方法,该方法将String作为密码输入并生成另一个String作为输出并根据您的密码和salt进行检查,然后您找到了您的方法。找到方法后,您只需确保在项目中使用它或实现类似的方式来验证用户。

© www.soinside.com 2019 - 2024. All rights reserved.