-1

我需要使用 SQL Server 存储过程在 .NET 应用程序中开发密码验证。

我已经开发了第一个验证(大写,小写,数字等),但现在我需要检查密码不能包含用户的帐户名或超过三个连续字符的用户全名部分,但我不知道如何在 SQL 中(在存储过程中)执行此操作,也许使用正则表达式?

我已经搜索过,因为这在密码验证中通常非常典型,但我在 SQL Server 中没有找到任何东西

有什么想法吗?

感谢和问候!

4

1 回答 1

0

这显然不是正确的密码保护。首先,将未加密的关键数据发送到服务器并不是一个好主意。假设您通过存储过程在服务器上而不是客户端上执行验证,您的数据必须是未加密的。其次,如果您仍然想要,请使用正则表达式进行验证。第三,您必须在数据库中记录所有旧密码。然后检查最新的 6 是否匹配,然后发送消息,否则更改密码。

相反,您应该做的是:要在 .Net 代码中执行,您应该对密码进行哈希处理,然后从服务器获取哈希密码并进行比较。记录数据库中的所有散列密码。获取最后 6 个密码并与输入的散列密码进行比较(当然要尝试旧密码中的所有盐,因为不同的盐会给出不同的结果)。如果匹配警告否则存储密码。

于 2020-07-22T07:17:57.757 回答