【问题标题】:Password Policy Setting for a Website in c# 2008 [closed]c# 2008 中网站的密码策略设置 [关闭]
【发布时间】:2012-06-28 07:24:53
【问题描述】:

我在c# 2008 有一个网络应用程序。

我被分配了一项任务来为此网站设置密码策略。

政策是

  • 第一个字符是大写
  • 第二个字符是小写
  • 字符是“特殊字符”
  • 第 4 到第 8 个字符是随机数字
  • 密码正好是 8 个字符
  • 密码应在 6 个月后过期

我无法弄清楚这一点。提前致谢。

【问题讨论】:

    标签: c# passwords


    【解决方案1】:

    如果您想做到“正确”且正确,请选择正则表达式。如果您对他们没有任何经验,如果紧急,请忘记它。

    而是采用快速而肮脏的方式。这是未经测试的伪代码:

    if (password.Length == 8)
    {
       check password[0] for upper case
       check password[1] for lower case
       check password[2] for special char
       check password[3] && password[7] for "random digits"
       //return false, throw error, whatever you want in the case of any failures.
    }
    else
    {
       return error "your password is too short"
    }
    

    不确定要如何使密码在 6 个月后过期。如果您将密码视为具有“到期日期”字段的自定义类,并且您只需要 6 个月后,只需使用 MyPassword.ExpirationDate = DateTime.Now.AddMonths(6);

    【讨论】:

      【解决方案2】:

      不做任何尝试就在这里问它不是一个好习惯。听起来你正试图让别人完成你的工作。我可以建议你应该做的方式,而不是提供代码。

      您可以使用正则表达式来做到这一点。你可以搜索它。有很多资源。你应该构造一个正则表达式来检查你想要的约束,除了密码过期。您应该检查数据库上的密码过期时间。您可以定义一个在每个午夜工作的作业,它将检查密码数据库并检测过期的密码。

      【讨论】:

      • 我尝试了可用的正则表达式...但它们似乎无法满足我的要求。抱歉不具体给您带来不便...正则表达式似乎无法解决我的目的。因为我有固定的政策,因为第一个字符是大写,第二个低第三个必须是一个 spl 字符......正则表达式检查字符串中字符的随机可用性而不是顺序......这实际上是问题跨度>
      • 你确定你搜索过它?只需在 google 上搜索 2 秒,我就得到了这个结果:csharpfriends.com/Articles/getArticle.aspx?articleID=79
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多