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.
[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
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:
To get regular machine-readable progress, use –status-timer [seconds]
.
For most machine-readable output, you will also want to use –quiet
.
[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