Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
psudohash — 秒内生成数百万基于关键词的密码变体。 | Kitploit
工具/GitHubGitHub/t3l3machus/psudohash
密码破解密码攻击渗透测试
GitHubt3l3machus/psudohash

psudohash

秒内生成数百万基于关键词的密码变体。

查看仓库
1.5k1751年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

psudohash

Python 3.x License

v1.1.0 新特性

特别感谢 DavidAngelos:
▶️ 每一步添加进度条以跟踪执行。
▶️ 新增选项:

  • 顺序连接 (-i / --inorder):仅按原始顺序连接关键词(例如 foo,bar,baz → foo, bar, baz, foobar, foobaz, barbaz, foobarbaz)。
  • 全排列组合 (-c / --combinations):生成每个子集的所有排列(例如 foo,bar,baz → foo, bar, baz, foobar, foobaz, barfoo, …, bazbarfoo)。
  • 自定义分隔符 (--sep <string>):连接单词时,在此字符串之间插入分隔符(默认无分隔符)。
  • 最大组合大小 (--max-combine <N>):限制最多连接的原始关键词数量(默认:2)。
  • 最终单词的最小/最大长度过滤 (--minlen/--maxlen <N>):仅保留符合长度要求的单词。

目的

Psudohash 是一个密码列表生成器,用于暴力破解和哈希破解。它模拟人类常用的密码创建模式,例如用符号或数字替换单词中的字母(leet)、使用字符大小写变体、在主口令前后添加常见填充等。它基于关键词且高度可定制。🎥 -> 视频演示

企业环境渗透测试

系统管理员和其他员工经常使用公司名称的变体来设置密码(例如 Am@z0n_2022)。这在网络设备(Wi-Fi 接入点、交换机、路由器等)、应用程序甚至域账户中很常见。使用最基本选项,psudohash 可以根据常见字符替换模式(可自定义)、大小写变体、常用填充字符串等,生成一个或多个关键词的所有可能变体的单词列表。请看以下示例:

image

自定义

Leet 字符替换

脚本实现了以下字符替换方案。你可以通过编辑 psudohash.py 中的 transformations 列表并遵循以下数据结构(默认)来添加/修改字符替换映射:

root@kitploit:~
transformations = [
	{'a' : ['@', '4']},
	{'b' : '8'},
	{'e' : '3'},
	{'g' : ['9', '6']},
	{'i' : ['1', '!']},
	{'o' : '0'},
	{'s' : ['$', '5']},
	{'t' : '7'}
]

常见填充值

在设置密码时,我认为人们通常会在主口令前后添加字符序列以使其“更强”。例如,某人可能设置密码“dragon”并在末尾添加“!!!”或“!@#”,得到“dragon!!!”、“dragon!@#”等。Psudohash 从 common_padding_values.txt 中读取这些值,并通过将其附加在每个生成的关键词变体的前面(-cpb)或后面(-cpa)来使用它们。你可以根据需要修改该文件。

年份值

将年份值附加到变体关键词时,psudohash 会使用各种分隔符。默认使用以下分隔符,你可以通过编辑 year_seperators 列表来修改:

root@kitploit:~
year_seperators = ['', '_', '-', '@']

例如,如果给定关键词是“amazon”并使用了选项 -y 2023,则输出将包含“amazon2023”、“amazon_2023”、“amazon-2023”、“amazon@2023”、“amazon23”、“amazon_23”、“amazon-23”、“amazon@23”。

安装

首先安装 Python 3.x 和 tqdm:

root@kitploit:~
pip3 install tqdm

然后克隆仓库并使脚本可执行:

root@kitploit:~
git clone https://github.com/t3l3machus/psudohash.git
cd ./psudohash
chmod +x psudohash.py

用法

root@kitploit:~
./psudohash.py [-h] -w WORDS [-i] [-c] [--sep SEP] [--max-combine N] [-an LEVEL] [-nl LIMIT] [-y YEARS] [-ap VALUES] [-cpb] [-cpa] [-cpo] [-o FILENAME] [-q]

帮助对话框 [ -h, --help ] 包含用法详情和示例。

选项

  • -w, --words <kw1,kw2,…>
    以逗号分隔的原始关键词(必需)。

  • -i, --inorder
    按给定顺序连接最多 --max-combine 个关键词(例如 foo,bar,baz → foo, bar, baz, foobar, foobaz, barbaz, foobarbaz)。

  • -c, --combinations
    生成每个子集的所有排列(最多 --max-combine 个)(例如 foo,bar,baz → foo, bar, baz, foobar, foobaz, barfoo, …)。

  • --max-combine <N>(默认:2)
    连接成一个基本字符串的最大原始关键词数量。

  • --sep <string>
    连接单词时(-i 或 ),在令牌之间放置此字符串。默认为空字符串。

用法示例

  1. 无多词(仅单例)

    root@kitploit:~
    ./psudohash.py -w foo,bar,baz -cpa
    # → foo, bar, baz
    
  2. 顺序连接(-i,默认最多 2 个词)

    root@kitploit:~
    ./psudohash.py -w foo,bar,baz -i
    # → foo, bar, baz, foobar, foobaz, barbaz
    
  3. 全排列组合(-c,默认最多 2 个词)

    root@kitploit:~
    ./psudohash.py -w foo,bar,baz -c
    # → foo, bar, baz, foobar, foobaz, barfoo, barbaz, bazfoo, bazbar
    
  4. 更改连接词之间的分隔符

    root@kitploit:~
    ./psudohash.py -w foo,bar,baz -i --sep "_"
    # → foo, bar, baz, foo_bar, foo_baz, bar_baz
    
  5. 长度过滤(--minlen/--maxlen)

    root@kitploit:~
     ./psudohash.py -w apple,banana -i --minlen 10
     # 警告:由于长度过滤器,无法确定精确大小。
     # 最终输出示例可能包括“applebanana”(11 个字符)、“bananaapple”(11 个字符)。
    
  6. 最多组合 3 个词(而不是默认的 2 个)

使用技巧

  1. 结合选项 --years 和 --append-numbering,且 --numbering-limit ≥ 任何年份输入的后两位数字时,很可能会产生重复单词,因为工具实现的变异模式。
  2. 如果你添加了自定义填充值或在源代码中修改了预定义的常见填充值,再结合多个可选参数,则有可能出现重复单词。psudohash 包含单词过滤控制,但出于速度考虑,这些控制是有限的。
  3. 使用 --minlen 或 --maxlen 时,脚本无法预先计算确切单词数量;你会看到“无法确定精确大小”的警告,并且将在没有此过滤器的情况下计算大小,最终大小会更小。

个人用户

对于个人而言,我想我们都或多或少使用对我们有意义的词的变体来设置密码,例如我们的名字、妻子/孩子/宠物/乐队名字,在末尾加上出生年份或一个超级安全的填充如“!@#”。那么,你猜怎么着?

usage_example_png

未来

我正在收集关于常用密码创建模式的信息,以增强工具的能力。

下载工具
-c
  • --minlen <N>
    丢弃任何长度小于 N 个字符的最终密码。

  • --maxlen <N>
    丢弃任何长度大于 N 个字符的最终密码。

  • -an, --append-numbering <LEVEL>
    将带前导零(填充至 <LEVEL> 位)的数字后缀附加到每个单词变体。

  • -nl, --numbering-limit <LIMIT>
    附加数字时计数的最大值(默认:50)。

  • -y, --years <years>
    将一年或多年附加到每个变体(例如 1990-2000 或 2022,2023)。

  • -ap, --append-padding <vals>
    附加自定义填充值(逗号分隔)。必须与 -cpb 或 -cpa 一起使用。

  • -cpb, --common-paddings-before
    在每个变体之前添加来自 common_padding_values.txt 的值。

  • -cpa, --common-paddings-after
    在每个变体之后添加来自 common_padding_values.txt 的值。

  • -cpo, --custom-paddings-only
    仅使用用户提供的填充(不使用默认值)。必须与 -ap 一起使用。

  • -o, --output <file>
    将结果写入 <file>(默认:output.txt)。

  • -q, --quiet
    启动时隐藏 ASCII 艺术横幅。