chksum-cli

Compare checksums from the command line


License
GPL-3.0
Install
pip install chksum-cli==1.1.0

Documentation

chksum

CLI for comparing two checksums

Install

Requires Python >= 3.10

pip install chksum-cli

Features

  • User friendly non-specific argument order
  • Visual feedback comparing hashes
  • Exit code matches hash results
  • Can ignore dot files
  • Interactive mode
  • Hash only function
  • Can use md5, sha1, sha256, and sha512

Usage

CHKSUM [-?] [-i] [-d] position1 position2 [position3]

Calculate and compare the checksums of files or directories.
Can also compare against pasted strings.
ALGORITHMS = ['md5', 'sha1', 'sha256', 'sha512']

positional arguments:
  position1          Checksum, file, or algorithm
  position2          Checksum, file, or algorithm
  position3          Checksum, file, or algorithm

options:
  -?, --help         Show this help message and exit.
  -i, --interactive  Run in interactive mode.
  -d, --dots         Ignore '.' (dot) files from directories.

If the first 2 positional arguments are strings, the algorithm is not needed. Default is md5.
Likewise, passing only a single path will simply out the digest.

Arguments can be passed in any order. [Note: This issue]
E.g. the following are equivalent:
chksum <PathToFile> <PathToDir> sha256 -d
chksum -d <PathToDir> sha256 <PathToFile>

Interactive mode

Use -i to enter the interactive mode where arguments can be passed one at a time.
Note that -i is mutually exclusive.

$ chksum -i

      _     _
     | |   | |
  ___| |__ | | _____ _   _ _ __ ___
 / __| '_ \| |/ / __| | | | '_ ` _ \
| (__| | | |   <\__ \ |_| | | | | | |
 \___|_| |_|_|\_\___/\__,_|_| |_| |_|
 Copyright (c) 2022, espehon
 All rights reserved.

 ALGORITHMS = ['md5', 'sha1', 'sha256', 'sha512']

Enter Algorithm or path to File or Directory >

Inputs are checked after each entry and the prompt is updated accordingly

Enter Algorithm or path to File or Directory > ./
        Directory entered.
Enter Algorithm or path to File or Directory > ./
        Directory entered.
Enter Algorithm > md5
        Algorithm entered.
Do you want to include '.' (dot) files? [Y/n] > n
        include_dots = False

-------------[MD5]--------------
59198d6aad1674a0b372027ce275a9b6
59198d6aad1674a0b372027ce275a9b6
√ Hashes Match

Issues

Using -d in between positionals can causes an argparse error. (See Issue: #11)
Example:
$ chksum ./file ./file -d sha1

Author