求一密码复杂度检查的函数 有没有正则表达式的高手在啊?

冷箫轻笛 2009-09-22 11:57:28
要求对一字符串的复杂度 进行检查


密码符合以下长度/复杂性要求才可以接受
一, 密码最少长度为 6位 ,并至少包含3种复杂类别的字符 (如 Abc134 或者 abc12# 符合 如abc123 123<>( 就不符合)
二 密码最少长度为 8位 ,并至少包含2种复杂类别的字符 (如 Abc21334 或者 abcd1234 符合 如12345678 abcdefg就不符合)
三, 密码的复杂类别由拉丁、西里尔或希腊字母组成
复杂类别说明
1 大写字母 如:A B C....Z
2 小写字母 如:a b c....z
3 西文阿拉伯数据 如:0 1 2...9
4 其他字符(“特殊字符”、标点、符号 如:{ } [] , < > @ $ % & ^ ( ) _ + =

一 二 条符合其中一条即可

如何判断改字符串是否符合呢??
有没有高手 好人帮帮忙?
...全文
948 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghao2979 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 chen_xiangguo 的回复:]
引用 7 楼 wuyi8808 的回复:
C# code"^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,}|(?:……
[/Quote]


顶....走了csdn 这么久.热心的人还真是多哦
-过客- 2009-09-23
  • 打赏
  • 举报
回复

Regex reg = new Regex("^((?![{}\[\],<>@$%&^()_+=0-9]+$)(?![{}\[\],<>@$%&^()_+=a-z]+$)(?![{}\[\],<>@$%&^()_+=A-Z]+$)(?![A-Z0-9]+$)(?![A-Za-z]+$)(?![a-z0-9]+$)[{}\[\],<>@$%&^()_+=0-9a-zA-Z]{6}|(?![{}\[\],<>@$%&^()_+=]+$)(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)[{}\[\],<>@$%&^()_+=0-9a-zA-Z]{8})$");
if(reg.IsMatch(yourStr))
//符合
else
//不符合
zhangyanyang 2009-09-23
  • 打赏
  • 举报
回复
study
随风落梦 2009-09-22
  • 打赏
  • 举报
回复
up!!!!
mythad 2009-09-22
  • 打赏
  • 举报
回复
up
wiki14 2009-09-22
  • 打赏
  • 举报
回复

function checkPass(pass){

if(s.length < 8){

return 0;
}
var ls = 0;

if(s.match(/([a-z])+/)){

ls++;

}

if(s.match(/([0-9])+/)){

ls++;
}

if(s.match(/([A-Z])+/)){

ls++;

}
if(s.match(/[^a-zA-Z0-9]+/)){

ls++;

}
return ls

}
if(checkPass(form.password.value)<3){

alert("密码复杂度不够,请重新设置!");

form.password.focus();

return false ;
}



路过帮顶。
zhanlang9075 2009-09-22
  • 打赏
  • 举报
回复
学习le,帮顶,关注zh
chen_xiangguo 2009-09-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyi8808 的回复:]
C# code"^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,}|(?:(?=.*[A-Z])(?=.*[a-z])¡­
[/Quote]
空军,你太强了!
wuyi8808 2009-09-22
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string[] array = { "A2wee", "###123", "!!isok!!234", "ijk#A", "QWERtyuiop", "ABCD1234" };
Regex r = new Regex("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,}|(?:(?=.*[A-Z])(?=.*[a-z])|(?=.*[A-Z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])|(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[0-9])(?=.*[^A-Za-z0-9])|).{8,}");
foreach (string s in array)
{
Console.WriteLine("{0}: {1}", r.IsMatch(s) ? "Yes" : " No", s);
}
}
}
/* 输出:
No: A2wee
No: ###123
Yes: !!isok!!234
No: ijk#A
Yes: QWERtyuiop
Yes: ABCD1234
*/
wuyi8808 2009-09-22
  • 打赏
  • 举报
回复
"^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,}|(?:(?=.*[A-Z])(?=.*[a-z])|(?=.*[A-Z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])|(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[0-9])(?=.*[^A-Za-z0-9])|).{8,}"
aotian798 2009-09-22
  • 打赏
  • 举报
回复
litepos 2009-09-22
  • 打赏
  • 举报
回复
关注下下
wuyq11 2009-09-22
  • 打赏
  • 举报
回复
function checkPassword(pwd)
{
var p1= (pwd.search(/[a-zA-Z]/)!=-1) ? 1 : 0;
var p2= (pwd.search(/[0-9]/)!=-1) ? 1 : 0;
var p3= (pwd.search(/[^A-Za-z0-9_]/)!=-1) ? 1 : 0;
}
密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。 进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱--按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替--用一个或多个代替表将明文字母或数码等代替为密文;密本--用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱--用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、脱密密钥的分离。加密密钥是公开的,脱密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。利用文字和密码的规律,在一定条件下,采取各种技术手段,通过对截取密文的分析,以求得明文,还原密码编制,即破译密码。破译不同强度的密码,对条件的要求也不相同,甚至很不相同。 密码技术的目的很明确,就是为了解决信息安全问题。信息安全可分为四类特性:1、机密性:为了防止信息被窃,对应的密码技术有对称密码和公钥密码。2、完整性:为了防止信息被篡改,对应的密码技术有单向散列函数、消息认证码、数字签名。3、认证:为了防止攻击者伪装成真正的发送者,对应的密码技术有消息认证码和数字签名。4、不可否认性:为了防止发送者事后否认自己没有做过,对应的密码技术为数字签名。

110,574

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧