Your rating: None Average: 5 (6 votes)

latest development RPM

Hasher is a universal application to calculate hash digests from various input formats or files. It can also be used as a general-purpose bytes encoding converter or a password generator. It's basically a frontend to Python's hashlib.


To make Hasher work on all SailfishOS versions, I had to re-package all of its Python dependencies. If you have trouble installing, try reinstalling all of them: attrsxdgspecbase91 and pwdhash.


You could use Hasher to:

  • check various hashsums of text or files
  • determine whether a downloaded file was corrupted by verifying its hashsum 
  • convert text to its binary, octal, hexadecimal, Base64 or Base91 representation
  • convert between the abovementioned formats
  • generate strong passwords from a master password, for example:
    • Use the CryptoPass password generation scheme
    • Use the PwdHash algorithm
    • Or use PBKDF2_HMAC directly
    • select the PBKDF2_HMAC algorithm
    • enter your masterpassword
    • as salt, use a string like mylogin@service.de
    • choose a high number of iterations
    • choose a desired hash length
    • use the BasE91- or Base64-encoded result as password


  • hash algorithms supported by Python's  hashlib
  • CryptoPass password generation scheme
  • PwdHash password mangling scheme
  • files as input
  • input text in several encodings (UTF8, binary, octal, decimal, hexadecimal, base64, base91)
  • input text can be examined in different encodings to make sure it is interpreted as intended
  • digest can be displayed in different encodings
  • digest can be copied to the clipboard
  • digest is shown on the cover and can be hidden

On the ToDo-List

  • using an online service like md5online.org or md5decrypt.net for looking up (”decrypting”) digests
  • remembering the UI settings
  • interrupting long-runing hashing operations (discussion on GitLab)
  • defining ”pipelines” of hash operations (e.g. concatenate these strings, then hash 100 times with sha512, then encode with Base64 and take the first 10 characters) to facilitate a hash-based password mechanism


Known Issues

  • Closing Hasher does not interrupt long-running hashing operations (like hashing huge files)

Source Code

The source code is on GitLab.com.

If you like my work, you could consider a small donation via PayPal.


Application versions: 
File harbour-hasher-0.1.0-jolla.noarch.rpm59.7 KB20/10/2019 - 23:32
File harbour-hasher-0.2.0-jolla.noarch.rpm60.58 KB21/10/2019 - 13:47
File harbour-hasher-0.3.0-jolla.noarch.rpm67.63 KB25/10/2019 - 20:03
File harbour-hasher-0.3.1-jolla.noarch.rpm68.08 KB25/10/2019 - 20:28
File harbour-hasher-0.3.2-jolla.noarch.rpm68.2 KB25/10/2019 - 20:36
File harbour-hasher-0.4.0-jolla.noarch.rpm71.46 KB26/10/2019 - 12:25
File harbour-hasher-0.5.0-jolla.noarch.rpm74.61 KB27/10/2019 - 23:40
File harbour-hasher-0.6.0-jolla.noarch.rpm86.27 KB03/11/2019 - 22:20
File harbour-hasher-0.6.1-jolla.noarch.rpm86.4 KB04/11/2019 - 11:44
File harbour-hasher-0.6.2-jolla.noarch.rpm86.38 KB05/11/2019 - 15:49
File harbour-hasher-0.7.0-jolla.noarch.rpm94.78 KB05/11/2019 - 23:45
File harbour-hasher-0.7.1-jolla.noarch.rpm95.85 KB06/11/2019 - 20:19
File harbour-hasher-0.8.0-jolla.noarch.rpm101.15 KB10/11/2019 - 12:40
File harbour-hasher-0.8.1-jolla.noarch.rpm101.24 KB10/11/2019 - 17:16
File harbour-hasher-0.8.2-jolla.noarch.rpm101.9 KB13/11/2019 - 14:35
File harbour-hasher-0.8.3-jolla.noarch.rpm102.2 KB16/11/2019 - 02:21
File harbour-hasher-0.9.0-jolla.noarch.rpm106.71 KB19/11/2019 - 20:31
File harbour-hasher-0.9.1-jolla.noarch.rpm107.05 KB16/01/2020 - 12:13
File harbour-hasher-v0.9.2-jolla.noarch.rpm106.79 KB21/11/2020 - 22:58

v0.9.2 (Sa Nov 21 2020)

New build system SCons and revamped automatic OpenRepos upload

From this release on, Hasher is built with SCons instead of autotools, making the build process much more flexible.

Furthermore, this is the first successful upload to OpenRepos.net from GitLab CI with my Python package openrepos-webclient

To make this release have any changes, a single word in the German translation was changed.