Python网安-社工密码字典生成器(仅供学习)

目录

源码在这里,包括social_dict.py以及infor.txt社工信息

首先是导入模块和设置密码本

读取社工信息

创建数字和特殊字符列表

组合生成社工密码字典

主函数


源码在这里,包括social_dict.py以及infor.txt社工信息

https://github.com/Wist-fully/Attack/tree/passwd_generator

首先是导入模块和设置密码本

import itertools
import string

dictionaryFile = open('passwd.txt', 'w')

读取社工信息

def ReadInformationList():
    inforlist = []
    try:
        information = open("infor.txt", "r", encoding="utf-8")
        lines = information.readlines()
        for line in lines:
            # print(line.strip().split(':')[1])
            inforlist.append(line.strip().split(':')[1])
    except Exception as e:
        print(e + '\n')
        print("infor.txt文件读取错误")
    return inforlist

创建数字和特殊字符列表

def CreateNumberList():
    numberList = []
    words = string.digits
    itertoolsNumberlist = itertools.product(words, repeat=3)
    for number in itertoolsNumberlist:
        numberList.append("".join(number))
    return numberList


def CreateSpecialList():
    specialList = []
    specialWords = string.punctuation
    for i in specialWords:
        specialList.append("".join(i))
    return specialList

组合生成社工密码字典

def Combination():
    global dictionaryFile
    inforlist = ReadInformationList()
    # print(infolist)
    inforlen = len(inforlist)
    specialList = CreateSpecialList()
    for a in range(inforlen):
        #把个人信息大于等于8为的输出到文件
        if len(inforlist[a]) >= 8:
            # print(inforlist[a])
            dictionaryFile = open('passwd.txt', 'w')

        else:
            needWords = 8 - len(inforlist[a])
            #类似姓名+数字,共8位
            for b in itertools.permutations(string.digits, needWords):
                # print(infolist[a]+"".join(b))
                dictionaryFile.write(inforlist[a] + ''.join(b) + '\n')
        #类似姓名+生日
        for c in range(0, inforlen):
            if (len(inforlist[a] + inforlist[c]) >= 8):
                # print(inforlist[a]+inforlist[c])
                dictionaryFile.write(inforlist[a] + inforlist[c] + '\n')
        for d in range(0, inforlen):
            for e in range(0, len(specialList)):
                if (len(inforlist[a] + specialList[e] + inforlist[d]) >= 8):
                    #特殊字符加尾部
                    # print(infolist[a] + infolist[d] + specialList[e])
                    dictionaryFile.write(inforlist[a] + inforlist[d] + specialList[e] + '\n')
                    # 特殊字符加中间
                    # print(infolist[a] + specialList[e] + infolist[d])
                    dictionaryFile.write(inforlist[a] + specialList[e] + inforlist[d] + '\n')
                    # 特殊字符加前面
                    # print(specialList[e] + infolist[a] + infolist[d] )
                    dictionaryFile.write(specialList[e] + inforlist[a] + inforlist[d] + '\n')

主函数

if __name__ == '__main__':
    Combination()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值