Code Monkey home page Code Monkey logo

hashit's Introduction

image

Project is hosted on pypi and launchpad

image

Hashit, an hashing application

asciinema demo usage.

Description

Hashit, is an hashing application used as an verification tool, intendet to replace the "standard" linux hashing utilities such as md5sum, sha1sum and so on. One of the main reasons why this program was develop was to create an easy-to-use command line tool for newcomers and professionals alike to hash/verify files and other data. For more see our homepage at cjavad.github.io/hashit

What is this magic (hashing)

A quote from here, which i think sums up the hole thing pretty well. Even though, that stament is purely opinion based, i still thing there is some weigth in it, because you can do so many things with "hashing". First of all the concept of hashing is that you can, with an matematical algorithm generate a string that is unique to that piece of data, but you cannot turn that string into the data again, this is done by generating a string which size is constant (or at least not changing from data to data). And this is actually extreamlly useful, because this enables you to generate a string that is smaller than the original while still being totally unique, this can be using in databases for bigdata where you can create a lookup table without needing to use the hole amount of data, it can also be used to verify data such as passwords and file-checksums, which by the way is what this program is. I use the standard python hashes libary hashlib, which comes with most versions of python, some function like crc32 are from other libaries, i use these to hash some files and store the results in a checksum-file, which can be read back and check if the files have changed, this is very important when it comes to packaging, and other critical files, were one must be absoulutly sure that the file has not been changed, because if it has it could be due to corruption or infection of some kind of malware, so by making sure that the package is the same as the original. Some file systems use these hashes to make sure that the files havn't been alteret externally.

For more see docs/hashes and the wikipedia page

Background

Hashit is an hashing program which can be uses to hash and verify muliple files on a system. I got the idea from an ubuntu iso image which have this hash table, so i got the idea to make such a program using python.

I also found that the linux 'standard' hashing commands was named like this:
  • md5sum
  • sha1sum
  • sha256sum
  • cksum
  • sum

hashname + sum, which i thougth was a pretty lame naming convention.

Notice:

some hashes as blake2b and blake2s is not supported in python2.

I would recommend python3 for this program as its version of hashlib supports sha3 (Keccak)

And for compatibly reasons does detect not work for sha3 yet. so basicly to many confusions between sha2 and sha3

BSD can be useful with the -A --append because then multiple diffrent hashtypes can be stored in the same file, good for multi-sized file validation. (remember -m)

Usage

See docs/usage

Changelog

See debian/changelog

Works with python2 and python3. (python3 is recommended)

Join the chat at https://gitter.im/cjavad/hashit

hashit's People

Contributors

cjavad avatar gitter-badger avatar txk2048 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hashit's Issues

Help Needed - Feature requests!

So i am pretty much empty of all ideas concerning this project, so i am turning to you, my dear "users" for help, all feedback Will be appriciated.

Note: I will be continuing to release bugfixes, but for now, no new features ๐Ÿ˜ž. Unless you want some of course!

Allow for checks made inline on terminal using the | method

Allow for hashit to be used like shasum and such, so you can take check input like this when no file is specified:

echo "add4614b6fe3bb8e7dddcaab0ea97c476fbd4ffe288f2a4912cb06f1a47dcfa0 *ubuntu-18.04.3-desktop-amd64.iso" | shasum -a 256 --check

With hashit it should look like this:

echo "add4614b6fe3bb8e7dddcaab0ea97c476fbd4ffe288f2a4912cb06f1a47dcfa0 *ubuntu-18.04.3-desktop-amd64.iso" | hashit -H sha256 --check

or with detect

echo "add4614b6fe3bb8e7dddcaab0ea97c476fbd4ffe288f2a4912cb06f1a47dcfa0 *ubuntu-18.04.3-desktop-amd64.iso" | hashit -d --check

And then it should output it like this:

ubuntu-18.04.3-desktop-amd64.iso: OK

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.