写点什么

Pipal 密码分析工具的模块化检查器与分割器系统详解

作者:qife
  • 2025-07-26
    福建
  • 本文字数:870 字

    阅读完需:约 3 分钟

检查器与分割器 - Pipal 的模块化改造

这是关于新版模块化检查器和分割器系统的说明文档。由于开发尚未完成,系统可能还会调整,我将尽量保持本文档的同步更新。


您可以从 GitHub 仓库的modular分支获取新代码。对于这个模块化方案有任何疑问、建议或意见,请随时联系我。

检查器

检查器是 Pipal 最核心的组件,负责对密码执行分析操作。最初所有检查器都内嵌在主脚本中,导致维护困难和扩展障碍。现在它们被解耦为独立的模块化组件。


其配置方式类似于 Apache 在某些 Linux 发行版中处理虚拟主机的方式:


  • checkers_available目录存放所有可用检查器

  • checkers_enabled目录存放启用中的检查器


通过创建符号链接即可激活检查器。这种设计允许用户按需启用功能,例如不需要 Hashcat 掩码分析的用户可以节省处理器资源。虽然对小规模密码列表影响不大,但对海量数据处理时优势明显。


新版检查器的另一优势是易于扩展。以checkers_available/windows_complexity_checker.rb为例,仅需 25 行代码就能实现 Windows 默认复杂度规则的检查。要创建自定义规则,只需复制该文件、修改正则表达式、更新名称和描述文本,最后创建符号链接即可。


对于基于列表的检查更简单,参考 15 行代码的colour_checker.rb,只需提供名称、词表和描述即可自动生成检查器。


使用--list-checkers参数可查看所有可用检查器的简要说明。未来计划扩展该功能,支持显示每个检查器的详细说明文档。

分割器

当需要处理包含额外字段(如用户名)的密码文件时,分割器就派上用场了。默认情况下系统将每行视为独立密码,但自定义分割器可以识别密码和其他数据字段。


示例分割器pipe_pass_user.rb处理管道符分隔的文件格式(密码|用户名),其核心是一个包含静态方法split的类,该方法将每行拆分为密码和用户名:密码作为主返回值,用户名存入关联数组。目前只有username.rb检查器能处理这个附加字段,它会分析用户名与密码的关联性,其他检查器则自动忽略额外数据。


同一时间只能启用一个分割器,通过在主目录创建指向custom_splitter.rb的符号链接来激活指定分割器。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Pipal密码分析工具的模块化检查器与分割器系统详解_密码分析_qife_InfoQ写作社区