C#-通用密码预防实现

时间:2018-09-20 08:00:01

标签: c# .net security passwords nuget

我已经阅读了一些有关密码策略和强度的知识,我想实现一个通用的密码库,以不允许允许用户选择。

我考虑将密码列表存储在服务器上(而不必手动更新),而是考虑从实时资源(例如SecLists)中读取它们。这可能会起作用,但是如果发布了新的集,则仍然必须手动更新路径,或者具有某种避免每次注册用户时从源中拉出的方法。

我想看看是否有一个使用良好的C#公共密码库,以避免发生,因此更新就像更新nuget包一样简单。是否存在这样的事情,或者使用这样的库会危及您的密码安全性?

但是,通过允许某人知道您不允许使用的密码,可以在尝试访问系统时将其排除。因此,我对如何最好地解决问题一无所知。我们被告知我们必须与其他安全选项一起使用公共密码列表。

我已经看到了一些不错的js实现,可以通过密码策略滑块解决此问题,因此我怀疑某个地方有一个优雅的解决方案

1 个答案:

答案 0 :(得分:3)

TL; DR不要这样做

Internet上有许多受损的密码列表,实际上,您可以通过简单的检查来检查所有密码:

bool Match(string newPassword)
{
    var passwords = File.ReadAllLines("passwords.lst");
    return passwords.Any(x=> x == newPassword);
}

但是 用户很愚蠢。您使密码使用的难度越大,他们越有可能将其写在监视器上贴的便条纸上。归根结底,这是他们的帐户,它遭到了破坏,这不是您的问题(假设这并不意味着他们随后可以访问系统资源,这是您的问题)。