Machine-readable output

hashcat supports displaying information in machine-readable output for a number of modes.

Some machine-readable output includes a commented-out header that includes information like the hashcat version.

benchmark

[device-id]:[?]:[?]:[exec_runtime in milliseconds]:[hashes per second]

$ hashcat -b -m 0 --machine-readable

# version: v4.0.0+
# option: --optimized-kernel-enable
1:0:1683:4513:55.02:10240000000
2:0:1657:4513:55.82:10183130102
3:0:1683:4513:61.62:10274648090
4:0:1683:4513:58.71:10123222108
5:0:1708:4513:70.27:9237029125
6:0:1683:4513:69.34:9277124609
Started: Thu Nov  2 15:08:04 2017
Stopped: Thu Nov  2 15:08:20 2017

status display

The code that implements runtime machine-readable output is in terminal.c

Some fields are variable in width depending on the number of devices used.

Example of a run in progress:

STATUS  3       SPEED   11620683163     1000    EXEC_RUNTIME    452.773035      CURKU   0       PROGRESS        26190392852480  630249409724609375      RECHASH01       RECSALT 0       1       TEMP    64      REJECTED        0

Example of a completed run that was very fast and only engaged one GPU out of six:

STATUS  5       SPEED   186419656       1000    0       1000    0       1000    0       1000    0       1000    0      1000     EXEC_RUNTIME    0.094336        0.000000        0.000000        0.000000        0.000000        0.000000       CURKU    0       PROGRESS        857375  857375  RECHASH 0       1       RECSALT 0       1       TEMP    64      66     67       61      68      64      REJECTED        0

Example of an attack that was terminated by selecting 'q' to quit:

STATUS  8       SPEED   11674779143     1000    EXEC_RUNTIME    455.360562      CURKU   5242880 PROGRESS        41447409582080  630249409724609375      RECHASH 0       1       RECSALT 0       1       TEMP    63      REJECTED        0

The fields are as follows:

  • STATUS: Exit status of the job. Statuses are defined in status.c (near the top). Common exit statuses are:
    • 3 (running)
    • 5 (exhausted)
    • 6 (cracked)
    • 7 (aborted)
    • 8 (quit)
  • SPEED: hashes (per unit of time), and unit of time (in milliseconds) (per device)
  • EXEC_RUNTIME: execution runtime in seconds
  • CURKU: restore point?
  • PROGRESS: Two values: how many hashes have been attempted so far, and how many remain.
  • RECHASH: Number of recovered hashes.
  • RECSALT: Number of recovered salts.
  • TEMP: Temperatures in Celsius (per device)
  • REJECTED: Number of rejected candidate passwords.

To get regular machine-readable progress, use –status-timer [seconds].

For most machine-readable output, you will also want to use –quiet.

speed-only

[device-id]:[hashes per second]

$ hashcat -m 0 -a 3 target.hashlist -d 1 --quiet --speed-only --machine-readable ?a?a?a?a?a?a?a?a
1:3273837251
Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain