Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 用于密码验证的正则表达式 最少3个字母 最多15 字符A-Za-z0-9 特殊字符@#$%^&+=_.net_Regex - Fatal编程技术网

.net 用于密码验证的正则表达式 最少3个字母 最多15 字符A-Za-z0-9 特殊字符@#$%^&+=

.net 用于密码验证的正则表达式 最少3个字母 最多15 字符A-Za-z0-9 特殊字符@#$%^&+=,.net,regex,.net,Regex,这就是我所拥有的: Regex.IsMatch(Password.Text, @"^[A-Za-z0-9@#$%^&+=]{3,15}$ ") 它总是返回false 请提供帮助。去掉正则表达式字符串末尾的空格。另外:更正了可能的打字错误 Regex.IsMatch(Password.Text, @"^[A-Za-z0-9@#$%^&+=]{3,15}$") 去掉正则表达式字符串末尾的空格。另外:更正了可能的打字错误 Regex.IsMatch(Password.Text, @

这就是我所拥有的:

Regex.IsMatch(Password.Text, @"^[A-Za-z0-9@#$%^&+=]{3,15}$ ")
它总是返回false


请提供帮助。

去掉正则表达式字符串末尾的空格。另外:更正了可能的打字错误

Regex.IsMatch(Password.Text, @"^[A-Za-z0-9@#$%^&+=]{3,15}$")

去掉正则表达式字符串末尾的空格。另外:更正了可能的打字错误

Regex.IsMatch(Password.Text, @"^[A-Za-z0-9@#$%^&+=]{3,15}$")

你到底为什么要限制可能的密码

  • 为什么禁止使用法语和德语字符(一般为unicode)
  • 为什么将密码限制为15个字符?很多人使用完整的密码短语
  • 为什么要限制特殊字符?你为什么要排除

    • 你到底为什么要限制可能的密码

      • 为什么禁止使用法语和德语字符(一般为unicode)
      • 为什么将密码限制为15个字符?很多人使用完整的密码短语
      • 为什么要限制特殊字符?你为什么要排除

      如前所述,这是一个非常糟糕的主意。更好的方法是测试输入密码的密码强度,并设置密码必须击败的分数

      有一些算法可以计算密码的强度。以下内容摘自哈根·雷德曼(Hagen Reddmann)的Delphi加密概要(Pascal的一个示例,但我想这很容易翻译)

      函数密码(const Password:String):扩展;
      //返回0.0到1.0范围内的计算质量
      //源代码摘自Delphi加密概要,2010年12月
      函数熵(P:PByteArray;L:Integer):扩展;
      变量
      频率:扩展;
      I:整数;
      Accu:长字的数组[字节];
      开始
      结果:=0.0;
      如果l1,则结果:=1;
      结束;
      结束;
      
      如前所述,这是一个非常糟糕的主意。更好的方法是测试输入密码的密码强度,并设置密码必须击败的分数

      有一些算法可以计算密码的强度。以下内容摘自哈根·雷德曼(Hagen Reddmann)的Delphi加密概要(Pascal的一个示例,但我想这很容易翻译)

      函数密码(const Password:String):扩展;
      //返回0.0到1.0范围内的计算质量
      //源代码摘自Delphi加密概要,2010年12月
      函数熵(P:PByteArray;L:Integer):扩展;
      变量
      频率:扩展;
      I:整数;
      Accu:长字的数组[字节];
      开始
      结果:=0.0;
      如果l1,则结果:=1;
      结束;
      结束;
      

      Offtopic,但如果我想在密码中使用
      以提高安全性,该怎么办?还是超过15个字符?(我实际上有一个密码比在超级安全案例中使用的密码长)@aloo-你在a和Z之间有一个下划线-因此你在B-Y上不匹配;还有215-应该是15吗?还是那些帖子的拼写错误?@moonshadow,为什么不回答而不是评论?有多少普通字符?有多少特殊的角色?您的需求和正则表达式中都没有包含这一点。这将使
      abc
      有效。对不起,这是一个输入错误Regex.IsMatch(Password.Text,@“^[a-Za-z0-9@$%^&+=]{3,15}$”),但如果我想在密码中使用
      ,以提高安全性,该怎么办?还是超过15个字符?(我实际上有一个密码比在超级安全案例中使用的密码长)@aloo-你在a和Z之间有一个下划线-因此你在B-Y上不匹配;还有215-应该是15吗?还是那些帖子的拼写错误?@moonshadow,为什么不回答而不是评论?有多少普通字符?有多少特殊的角色?您的需求和正则表达式中都没有包含这一点。对不起,这是一个拼写错误Regex.IsMatch(Password.Text,“^[a-Za-z0-9@$%^&+=]{3,15}$”)他不是也想把它变成
      ^[a-Z..
      ?他不是也想把它变成
      ^[A-Z…
      ?确实如此。Ruby的“密码”库使检查密码强度变得很容易。该库调用cracklib,它可以执行比大多数程序员想要做的更多更好的检查。例如,它将检查密码是否不是字典中的单词。我的目的是防止跨浏览器脚本编写。如果有人能告诉我的话如何对密码字段执行此操作。@aloo:如果此密码从未显示在页面上(无论如何都不应该显示),则跨站点脚本编写不是问题。真正的问题是SQL注入(),您可以通过编写正确的SQL查询来阻止它(请参阅wiki页面)。感谢您的所有回答。在阅读BlueRaja的评论后,不在密码字段中添加限制是有意义的。事实上,Ruby的“密码”库使检查密码强度变得很容易。该库调用cracklib,它可以执行比大多数程序员想要做的更多更好的检查。例如,它将检查password不是字典中的单词。我的目的是防止跨浏览器脚本编写。如果有人能告诉我如何对密码字段执行此操作。@aloo:如果此密码从未显示在页面上(无论如何都不应该显示),则跨站点脚本编写不是问题。真正的问题是SQL注入(),您可以通过编写适当的SQL查询(请参见wiki页面)来阻止。感谢您的所有回答。在阅读BlueRaja的评论后,不向密码字段添加限制是有意义的。