企业级加密字典生成核心是规则化模拟真实密码逻辑,包括leet替换、大小写变换、固定位插入、拼音转写及业务相关递增(如成立年份±3、产品版本、门牌号等),辅以python脚本实现可控组合、长度过滤与去重。
字符强转配合循环递增生成企业级加密字典,核心不是“暴力堆量”,而是用可控的规则模拟真实密码构造逻辑——比如把公司名、年份、固定后缀按确定顺序变形+递增,既保证覆盖率,又避免无意义膨胀。
明确字符强转的常见类型与适用场景
字符强转指对基础词做可预测的符号/大小写替换,不是随机乱换。关键是要匹配目标人群习惯:
- Leet Speak(形近替换):a→@、e→3、i→1、o→0、s→$、l→1、t→7。例如 “SpeedTech” → “5p33dT3ch”、“Sp33dT3ch”
- 首字母大写/全大写/全小写:保留原始词干结构,覆盖常见输入习惯,如 speedtech、Speedtech、SPEEDTECH
- 内部固定位替换:如强制第3位为“!”、末位为“#”,适用于有内部密码策略的企业(如“必须含特殊字符”)
- 拼音转写(中文企业适用):将“速科科技”转为 “sukekeji”、“SuKeKeJi”、“SUKEKEJI”,再叠加Leet
循环递增要绑定业务上下文,而非纯数字刷屏
单纯从2000到2030递增毫无意义。真正有效的是结合企业生命周期节点:
- 成立年份 ±3年:SpeedTech 成立于2018年 → 生成 2015–2021 年份后缀
- 产品上线年份 + 版本号:若“云盾V2.0”发布于2023年 → 组合 “YunDun2023”、“YunDunV2”、“YD2023”
- 办公室楼层/门牌号递增:如总部在“A座12层”,可试 “A12”、“A012”、“A-12”、“A_12”
- 员工工号区间:若高管工号集中于 1000–1099,可生成 “ST1001”、“ST1002”…(需授权获取范围)
用Python脚本实现轻量可控的组合生成
不依赖大型工具,一段可读脚本就能落地。示例:基于公司名 “SpeedTech” + 年份范围 + Leet规则生成精简字典:
base = "SpeedTech"
years = range(2018, 2023)
leet_map = {'e': '3', 'a': '@', 'o': '0', 's': '$'}
<p>def leet_transform(word):
return ''.join(leet_map.get(c.lower(), c) for c in word)</p><p>for year in years:</p><h1>基础组合</h1><pre class="brush:java;toolbar:false;">print(f"{base}{year}")
print(f"{base.lower()}{year}")
print(f"{base.upper()}{year}")
# Leet 变体
print(f"{leet_transform(base)}{year}")
print(f"{leet_transform(base).lower()}{year}")
# 常见分隔符插入
print(f"{base}-{year}")
print(f"{base}_{year}")输出直接重定向到文件:python gen.py > speedtech_dict.txt。全程可控、无冗余、可审计。
加入校验与去重保障字典质量
生成后别直接扔进Hydra。两步收尾动作能显著提升命中率:
-
长度过滤:企业密码策略常要求 ≥8 位且 ≤16 位,用
awk 'length($0) >= 8 && length($0) 筛选 -
去重+排序:
sort -u speedtech_dict.txt -o speedtech_clean.txt消除重复和无效空行 - 抽样验证:人工检查前20行和后20行,确认无异常字符、编码错误或逻辑断裂(如 “SpeedTech@” 后缺年份)










