利用企业员工信息表中的员工信息,生成有针对性的弱口令字典
很多员工喜欢把自己办公系统的密码设置为姓名+特殊字符+手机号(或生日),如zhangsan.18203600001,zhangsan.1980,zhangsan*19800625,zhangsan#123 …………
因此,我们可以根据企业员工信息表中的员工信息,生成有针对性的弱口令字典。
说明:
1、利用pypinyin模块把员工的中文姓名转换成拼音(姓名全拼和姓名首字母拼音)
2、弱口令的组合包括:
-
姓名全拼+特殊字符+特殊数字组合
-
姓名全拼+特殊字符+手机组合
-
姓名全拼+特殊字符+全生日组合
-
姓名全拼+特殊字符+生日(年份)组合
-
姓名首字母+特殊字符 +特殊数字组合
-
姓名首字母+特殊字符+手机组合
-
姓名首字母+特殊字符+全生日组合
-
姓名首字母+特殊字符+生日(年份)组合
-
姓名首字母+特殊字符+生日(月日)组合
# coding=utf-8 """ @author:Eleven created on:2018年11月1日 python3 """ from pypinyin import pinyin,lazy_pinyin # 员工信息表 userInfo=[{'name':'郭靖','phone':'18203600001','birthday':'19800101'},{'name':'杨过','phone':'18203600002','birthday':'19800102'},{'name':'小龙女','phone':'18203600003','birthday':'19800103'}] # 特殊字符表 specialKeys = ['!','@','#','$','%','^','&','*','(',')','_','+','-','=',',','.','<','>','`','~','[',']','{','}',';','?','|','!@#','~!@','@#$','#$%','$%^','%^&','^&*','&*(','*()','()_',')_+'] #特殊数字表 numberKeys=['1','12','123','789','678','567','456','345','234','1234','12345','123456','987','876','765','654','543','432','321','111','222','333','444','555','666','777','888','999','2010','2011','2012','2013','2014','2015','2016','2017','2018','2019','2020'] finalPassword=[] #保存最终生成的密码 # userInfo的中文姓名变成姓名全拼音 userInfo_all_Pinyin=[] for i in range(len(userInfo)): nameArr = lazy_pinyin(userInfo[i]['name']) # 得到姓名拼音的列表 allNamePinYin = '' # 存放姓名拼音字符串 for y in range(len(nameArr)): allNamePinYin = allNamePinYin + nameArr[y] userInfo_all_Pinyin.append({'name':allNamePinYin,'phone':userInfo[i]['phone'],'birthday':userInfo[i]['birthday']}) # userInfo的中文姓名变成姓名首字母拼音 userInfo_short_Pinyin=[] for i in range(len(userInfo)): nameArr = lazy_pinyin(userInfo[i]['name']) # 得到姓名拼音的列表 shortNamePinYin='' # 存放姓名拼音字符串 for y in range(len(nameArr)): shortNamePinYin = shortNamePinYin +nameArr[y][0] userInfo_short_Pinyin.append({'name':shortNamePinYin,'phone':userInfo[i]['phone'],'birthday':userInfo[i]['birthday']}) for i in range(len(userInfo_all_Pinyin)): for j in range(len(specialKeys)): # 姓名全拼 + 特殊字符 + 特殊数字组合 for x in range(len(numberKeys)): pwd = userInfo_all_Pinyin[i]['name']+specialKeys[j]+numberKeys[x] finalPassword.append(pwd) # 姓名+特殊字符+手机组合 pwd = userInfo_all_Pinyin[i]['name']+specialKeys[j]+userInfo_all_Pinyin[i]['phone'] finalPassword.append(pwd) # 姓名+特殊字符+全生日组合 pwd = userInfo_all_Pinyin[i]['name']+specialKeys[j]+userInfo_all_Pinyin[i]['birthday'] finalPassword.append(pwd) # 姓名+特殊字符+生日(年份)组合 pwd = userInfo_all_Pinyin[i]['name']+specialKeys[j]+userInfo_all_Pinyin[i]['birthday'][0:4] finalPassword.append(pwd) # 姓名+特殊字符+生日(月日)组合 pwd = userInfo_all_Pinyin[i]['name']+specialKeys[j]+userInfo_all_Pinyin[i]['birthday'][-4:] finalPassword.append(pwd) for i in range(len(userInfo_short_Pinyin)): for j in range(len(specialKeys)): # 姓名全拼 + 特殊字符 + 特殊数字组合 for x in range(len(numberKeys)): pwd = userInfo_short_Pinyin[i]['name']+specialKeys[j]+numberKeys[x] finalPassword.append(pwd) # 姓名+特殊字符+手机组合 pwd = userInfo_short_Pinyin[i]['name']+specialKeys[j]+userInfo_short_Pinyin[i]['phone'] finalPassword.append(pwd) # 姓名+特殊字符+全生日组合 pwd = userInfo_short_Pinyin[i]['name']+specialKeys[j]+userInfo_short_Pinyin[i]['birthday'] finalPassword.append(pwd) # 姓名+特殊字符+生日(年份)组合 pwd = userInfo_short_Pinyin[i]['name']+specialKeys[j]+userInfo_short_Pinyin[i]['birthday'][0:4] finalPassword.append(pwd) # 姓名+特殊字符+生日(月日)组合 pwd = userInfo_short_Pinyin[i]['name']+specialKeys[j]+userInfo_short_Pinyin[i]['birthday'][-4:] finalPassword.append(pwd) print(finalPassword)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探