HCXHASHTOOL(1)

πŸ’– NAME πŸ’–

hcxhashtool β€” the hcx tools set. bestie. that's the whole name, slay ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so, first things first, the vibe check: this is hcxhashtool 7.1.2 (C) 2026 ZeroBeat πŸ’…

usage, verbatim, no notes:

hcxhashtool <options>

and here come the options, all of them, no cap, in order πŸ‘‘

  • -i <file> β€” the input: your PMKID/EAPOL hash file goes here πŸ“
  • -o <file> β€” the output: PMKID/EAPOL hash file, writing time πŸ’Ύ
  • -E <file> β€” output an ESSID list (autohex enabled, iconic)
  • -E stdout β€” output that same ESSID list to stdout instead (autohex enabled)
  • -L <file> β€” output an ESSID list, unfiltered and unsorted, feral behavior, we respect it
    • so useful in combination with the hashcat -a9 option, iykyk πŸ”₯

  • -d β€” download https://standards-oui.ieee.org/oui.txt and save it to ~/.hcxtools/oui.txt
    • > heads up bestie: internet connection required 🌈
  • -h β€” show this help
  • -v β€” show version

  • --essid-group β€” convert to ESSID groups in the working directory
    • you get the full advantage of reuse of PBKDF2 ✨ β€” but not on old hash formats, sorry 😭
  • --oui-group β€” convert to OUI groups in the working directory
    • not on old hash formats 🫠
  • --mac-group-ap β€” convert APs to MAC groups in the working directory
    • not on old hash formats πŸ’€
  • --mac-group-client β€” convert CLIENTs to MAC groups in the working directory
    • not on old hash formats πŸ™ˆ

  • --type=<digit> β€” filter by hash type, it's a bitmask moment:
    • 1 = PMKID
    • 2 = EAPOL
    • default is PMKID and EAPOL (1+2=3) πŸ’…
  • --hcx-min=<digit> β€” disregard hashes with occurrence lower than hcx-min/ESSID
  • --hcx-max=<digit> β€” disregard hashes with occurrence higher than hcx-max/ESSID
  • --essid-len β€” filter by ESSID length
    • default ESSID length: 0...32 πŸ“
  • --essid-min β€” filter by ESSID minimum length
    • default ESSID minimum length: 0
  • --essid-max β€” filter by ESSID maximum length
    • default ESSID maximum length: 32
  • --essid=<ESSID> β€” filter by ESSID 🌸
  • --essid-part=<part of ESSID> β€” filter by part of ESSID (case sensitive, she notices capital letters)
  • --essid-partx=<part of ESSID> β€” filter by part of ESSID (case insensitive, lowercase era, we love her)
    • locale and wide characters are ignored 🧚
  • --essid-list=<file> β€” filter by ESSID file
  • --essid-regex=<regex> β€” filter ESSID by regular expression (regex girlies rise πŸ”₯)
  • --mac-ap=<MAC> β€” filter AP by MAC
    • format: 001122334455, 00:11:22:33:44:55, 00-11-22-33-44-55 (hex)
  • --mac-client=<MAC> β€” filter CLIENT by MAC
    • format: 001122334455, 00:11:22:33:44:55, 00-11-22-33-44-55 (hex)
  • --mac-list=<file> β€” filter by MAC file
    • format: 001122334455, 00:11:22:33:44:55, 00-11-22-33-44-55 (hex)
  • --mac-skiplist=<file> β€” exclude MAC from file (blocked, blocked, blocked 🚫)
    • format: 001122334455, 00:11:22:33:44:55, 00-11-22-33-44-55 (hex)
  • --oui-ap=<OUI> β€” filter AP by OUI
    • format: 001122, 00:11:22, 00-11-22 (hex)
  • --oui-client=<OUI> β€” filter CLIENT by OUI
    • format: 001122, 00:11:22, 00-11-22 (hex)
  • --vendor=<VENDOR> β€” filter AP or CLIENT by (part of) VENDOR name 🏷️
  • --vendor-ap=<VENDOR> β€” filter AP by (part of) VENDOR name
  • --vendor-client=<VENDOR> β€” filter CLIENT by (part of) VENDOR name
  • --authorized β€” filter EAPOL pairs by status authorized (M2M3, M3M4, M1M4) πŸ‘‘
  • --challenge β€” filter EAPOL pairs by status CHALLENGE (M1M2, M1M2ROGUE)
  • --rc β€” filter EAPOL pairs by replaycount status checked
  • --rc-not β€” filter EAPOL pairs by replaycount status not checked
  • --apless β€” filter EAPOL pairs by status M1M2ROGUE (M2 requested from CLIENT) 😈

  • --info=<file> β€” output detailed information about the content of the hash file
    • no filter options available 🚫
  • --info=stdout β€” stdout output of detailed information about the content of the hash file
    • no filter options available
  • --info-vendor=<file> β€” output detailed information about ACCESS POINT and CLIENT VENDORs
    • no filter options available
  • --info-vendor-ap=<file> β€” output detailed information about ACCESS POINT VENDORs
    • no filter options available
  • --info-vendor-client=<file> β€” output detailed information about CLIENT VENDORs
    • no filter options available
  • --info-vendor=stdout β€” stdout output of detailed information about ACCESS POINT and CLIENT VENDORs
    • no filter options available
  • --info-vendor-ap=stdout β€” stdout output of detailed information about ACCESS POINT VENDORs
    • no filter options available
  • --info-vendor-client=stdout β€” stdout output of detailed information about CLIENT VENDORs
    • no filter options available

  • --psk=<PSK> β€” pre-shared key to test πŸ”‘
    • > due to PBKDF2 calculation this is a very slow process, bestie, like genuinely slow 😭
    • no nonce error corrections πŸ’€
  • --pmk=<PMK> β€” plain master key to test
    • no nonce error corrections
  • --hccapx-in=<file> β€” input a deprecated hccapx file
    • MESSSAGEPAIR is taken from the hccapx source πŸ“₯
  • --hccapx-out=<file> β€” output to a deprecated hccapx file
  • --hccap-in=<file> β€” input an ancient hccap file 🏺
  • --hccap-out=<file> β€” output to an ancient hccap file
    • MESSSAGEPAIR is calculated from the EAPOL MESSAGE
    • > due to missing information, the worst case value is calculated 😬
  • --hccap-single β€” output to ancient hccap single files (MAC + count)
  • --john=<file> β€” output to a deprecated john file
  • --vendorlist β€” stdout output of the complete OUI list, sorted by OUI πŸ“‹
  • --help β€” show this help
  • --version β€” show version

⚠️ Important notice: hcxhashtool does not do NONCE ERROR CORRECTIONS in case of a packet loss β€” you get a wrong PTK. that's the whole tea, no filter, protect your PTK bestie 🫢

that's the page, periodt πŸ’– this was hcxhashtool 7.1.2, (C) 2026 Zero..., and the page is dated July 2026 β€” love that for us, bye bestie πŸ‘‘πŸ¦‹

πŸ“¦ where this page comes from