咖啡暴力字典生成器

date 2010年07月14日 | category Python,学习笔记| 坏人咖啡

算是学Python的第一个作品吧,感谢阿神同学的无私帮助,没有你就没有这个版本了。
支持全密码长度生成,字典包括了大小写字母、特殊符号和数字。
使用条件:
windows下需要安装Python的环境,Linux下可以直接使用
使用方法:
python mydict.py 4 -w mydict.txt

代码:
[python]
#!/usr/bin/python
# -*- coding:utf-8 -*-
#*********************************************************
#* 咖啡暴力字典生成器 *
#* 支持自定位数生成,包括大小写字母、特殊符号和数字 *
#* 感谢阿神的帮助,让我完成了这样第一个作品 *
#* BY:坏人咖啡 2010. *
#* http://huairen.me *
#*********************************************************

import itertools
import string
import os
import sys

def title():
print "\n\t Huairen.Me Password dict V1.0 "
print "\t———————————————–\n"
print "\t Usage:python mydict.py 3 -w mydict.txt\n"
print "\t———————————————–\n"

def crackdict(max, min=1, chars=None):
assert max >= min >= 1

if chars is None:
import string
chars = string.printable[:-5]

p = []
for i in xrange(min, max + 1):
p.append((itertools.product(string.printable[:-5], repeat=i),))

return itertools.chain(*p)

min = 1
title()
if len(sys.argv) <= 1 or len(sys.argv) == 3:
sys.exit(1)

txt = None
for i in range(1, len(sys.argv)):
arg = sys.argv[i]
if arg.lower() == "-w":
if i == len(sys.argv) – 1:
raise Exception("Not enough parameters")
txt = sys.argv[i + 1]

if sys.argv[1].isdigit() == False:
print sys.argv[1],"must be a number\n"
sys.exit(1)
else:
max = int(sys.argv[1])

if txt != None:
d = crackdict(max, min)
fp = open(txt,’w’)
for i in d:
for j in i:
fp.write("".join(j))
fp.write(‘\n’)
fp.close()
print "Done!"

[/python]

本工具只做学习研究用,请勿用于其它用途。

所属分类: Python,学习笔记
Tags: , ,


没有评论

暂无评论

RSS feed for comments on this post.

对不起,该文章的评论被关闭了!