2026-10-24 18:07:34
Hashcat 是一款高性能密码破解工具,支持基于规则的攻击方式,通过编写规则可对字典进行灵活变换,生成大量衍生密码以提高破解效率。以下是关于 Hashcat 规则编写的详细教程:
一、规则编写基础与调试基础规则测试:以单词 spring 为例,创建字典文件 dict.txt 并写入该单词,创建规则文件 test.rule 并写入规则 c(将首字母大写)。运行以下命令测试规则效果:
hashcat64.exe -r test.rule --stdout dict.txt输出结果为 Spring,验证规则生效。
规则作用范围:大写规则仅对字母有效。例如,输入 !spring 或 !SPRING 时,输出仍为 !spring,因规则不处理首字符的数字或特殊符号。

末尾追加:规则 c $2$0$1$9 先将单词首字母大写,再追加 2019。例如:
echo spring > dict.txtecho "c $2$0$1$9" > test.rulehashcat64.exe -r test.rule --stdout dict.txt输出结果为 Spring2019。
开头插入:规则 ^3^2^1 表示将字符串 123 反转后插入开头。例如:
echo "^3^2^1" > test.rulehashcat64.exe -r test.rule --stdout dict.txt输出结果为 123spring。若需首字母大写,规则需调整为 c ^3^2^1,输出 123Spring。
通过重复规则生成长密码,例如:
使用替换规则修改特定字符,例如:
根据密码模式组合规则。例如,生成 Spring2019 模式的密码:
脚本生成:使用 date_rule.py 脚本批量生成日期规则。例如,为每个密码追加 1980-2020 年份:
# 脚本逻辑示例:遍历年份范围并生成规则for year in range(1980, 2021): print(f"c ${year % 100}$")Maskprocessor 工具:通过掩码生成复杂规则。例如:
在密码末尾追加任意字符:
mp64.exe -o test.rule "$?a"在密码开头插入数字、末尾追加任意字符并首字母大写:
mp64.exe -o test.rule "c ^?d $?a"
以下规则集覆盖常见密码模式:
# 基础变换c # 首字母大写d # 全小写u # 全大写$! # 末尾追加!^1^2^3 # 开头插入321# 复杂组合c $2$0$1$9 # Spring2019c d $! # Springspring!^3^2^1 c $! # 123Spring!c $?d $?d $?s # 首字母大写 + 末尾追加两位数字和特殊字符通过灵活组合规则,可显著提升密码破解效率。建议根据目标密码特征设计针对性规则,并利用自动化工具减少手动操作。