bin/haiti in haiti-hash-1.3.0 vs bin/haiti in haiti-hash-1.4.0
- old
+ new
@@ -8,17 +8,26 @@
# External
require 'docopt'
require 'paint'
doc = <<~DOCOPT
- HAITI (HAsh IdenTifIer)
+ HAITI (HAsh IdenTifIer) v#{HashIdentifier::VERSION}
Usage:
haiti [options] <hash>
+ haiti samples (<ref> | <name>)
haiti -h | --help
haiti --version
+ Commands:
+ samples Display hash samples for the given type
+
+ Parameters:
+ <hash> Hash string to identify, read from STDIN if equal to "-"
+ <ref> hashcat or john the ripper reference
+ <name> Hash type name
+
Options:
--no-color Disable colorized output
-e, --extended List all possible hash algorithms including ones using salt
--short Display in a short format: do not display hashcat and john the ripper references
--hashcat-only Show only hashcat references
@@ -28,18 +37,21 @@
--version Show version
Examples:
haiti -e d41d8cd98f00b204e9800998ecf8427e
haiti --no-color --short d41d8cd98f00b204e9800998ecf8427e
+ b2sum /etc/os-release | awk '{print $1}' | haiti -
+ haiti samples crc32
DOCOPT
begin
args = Docopt.docopt(doc, version: HashIdentifier::VERSION)
Paint.mode = 0 if args['--no-color']
pp args if args['--debug']
# use case 1, using the tool
if args['<hash>']
+ args['<hash>'] = $stdin.read.chomp if args['<hash>'] == '-'
hi = HashIdentifier.new(args['<hash>'])
if hi.type.empty?
puts 'Unknown hash type'
exit(0)
end
@@ -48,9 +60,15 @@
print Paint[type.name, :bold]
print Paint[" [HC: #{type.hashcat}]", :blue] unless type.hashcat.nil? || args['--short'] || args['--john-only']
print Paint[" [JtR: #{type.john}]", :green] unless type.john.nil? || args['--short'] || args['--hashcat-only']
puts
+ end
+ elsif args['samples']
+ input = args['<ref>'] || args['<name>']
+ samples = HashIdentifier.samples(input)
+ samples.each do |sample|
+ puts sample
end
end
# use case 2, help: already handled by docopt
# use case 3, version: already handled by docopt
rescue Docopt::Exit => e