|
|
Message-Id: <AEC2846F-25CD-4749-8906-14CDB0CF8199@gmail.com>
Date: Sun, 30 Aug 2026 08:48:41 -0700
From: Fred Wang <waffle.contest@...il.com>
To: john-dev@...ts.openwall.com
Subject: Hashpipe support for John
I wanted to let you know that I’ve begun adding native John-format support for hashpipe.
Hashpipe was written to help validate unknown, apparently solved, hashes. The primary purpose was to deal with potfiles. I’ve written about this before (“Pot(files) considered harmful”, see https://github.com/Cynosureprime/hashpipe). Essentially, hashpipe will take arbitrary lines of input, in the form of hash:[salt]:pass, and *assume* that there is an algorithm that resolves it. It tries, hard, to make the statement true, and to label the correct algorithm. “Solved/labeled” hashes go out via stdout (or other flag-selected paths), and unsolved lines go to stderr (or other flag-selected paths).
Consider a file “t":
000043013fccbf38da7538e3a9d9b51e:9456895896
000043de1b9b438166c282d0f3cdf91f:kj16jk12
00009b654dc7c69e9df14cab67614b82:spiculumamoris
4b756ad9a5e8795b2943a1d5116f6ade1217a98490862e55f089acf51ff2f768:Better:pass
Feeding this into hashpipe:
hashpipe <t
SHA1x01 000043013fccbf38da7538e3a9d9b51e:9456895896
MD5x01 000043de1b9b438166c282d0f3cdf91f:kj16jk12
SHA256x01 00009b654dc7c69e9df14cab67614b82:spiculumamoris
SHA256RAWSALTPASSx03 4b756ad9a5e8795b2943a1d5116f6ade1217a98490862e55f089acf51ff2f768:Better:pass
And it does it in 30 milliseconds or so.
I’ve added support (via the -J flag) to allow hashpipe to accept John-native input, and generate John-native output (where possible):
hashpipe -J 2 <t
$dynamic_26$000043013fccbf38da7538e3a9d9b51e:9456895896
$dynamic_0$000043de1b9b438166c282d0f3cdf91f:kj16jk12
$dynamic_60$00009b654dc7c69e9df14cab67614b82:spiculumamoris
SHA256RAWSALTPASSx03 4b756ad9a5e8795b2943a1d5116f6ade1217a98490862e55f089acf51ff2f768:Better:pass
I’ve also added support for a more general Hash Expression language to hashpipe, to help with both the generation, and validation of complex hash types.
hashpipe -X 'sha1(salt . md5(sha1_bin(pass)))' -s mysalt -p password123
5795b401c66ae8b0bf78ab0c3b93369b9030c525
Easy to do quick command-line probing of new hash types, then include that as a user-defined type that hashpipe will be able to verify later. Please give it a look - I’ll work on adding the remaining John native types to hashpipe over the coming days.
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.