密码和正则的问题
本帖最后由 holley 于 2022-9-20 17:25 编辑这两天又开始复习正则入门基础知识,刚好遇到某论坛的一个压缩包解密问题
目前已知压缩包密码规则:1个大写字母、1个小写字母、1个空格、3个数字 共6位
解决思路:1、通过正则生成相应密码字典;2、通过解密工具字典破解;
遇到的问题:
1、现在初步写出的正则为:
(?=.*?)(?=(.*?))(?=(.*?[\d]))(?=(.*?[\s]))[\da-zA-Z\s]{6}但自己做样例密码的时候,发现这个表达式没有完全有效匹配
如:
a A123
123a A
123A a
123 aA
123 Aa
1 23aA
12 a3A
1 23Aa
a1 32A
3333aA
43243a
43iid
4 2JaD
55aa c
DD43 d
444
ccd233
C7WkJv
yO4xF3其中4 2JaD和DD43 d两个明显不合的密码也匹配上了。
想请教:有没有更适合的正则表达式?
刚发完帖子,发现表达式改成这样好像可以了:
(?=(.*?){1})(?=(.*?){1})(?=(.*?[\d]){3})(?=(.*? ){1})[\da-zA-Z\s]{6}求更优解?
新加了2个样例密码,发现我的表达式还是会错误匹配:face (2):
2、大家有没有比较适合此案例的字典生成工具?我试了下pydictor,发现没办法完全实现我的要求,也非常有可能是我还不会用。
(?m)^((?=.*)(?=.*)(?=.*\h)(?=.*\d.*\d.*\d)[\da-zA-Z\h]{6})(?=\v|$)
页:
[1]