Your rating: None Average: 5 (7 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.



nobodyinperson's picture

SailfishOS 3.3 Rokua updates Python yet again, so all of Hasher's Python dependencies have to be repackaged...

EDIT: Done, Hasher should now be installable as usual under SailfishOS 3.3 Rokua as well. A normal update should have been shown in Storeman that Hasher 0.9.1 can be updated again from v0.2 (to which the Rokua update downgraded it).

nobodyinperson's picture

Alright, as of version 0.8.2, Hasher should also work fine on older SailfishOS versions.

EDIT: Oops, obviously v0.8.2 just breaks starting Hasher from the app launcher altogether. v0.8.3 is on the way!

olf's picture

Hasher 0.7.0-1 starts with an all white screen under SFOS 3.0.3 on an Xperia X.
Hasher 0.5.0 (from which I just updated to v0.7.0) was working fine.

olf's picture

There is no /usr/bin/harbour-hasher!?!

nobodyinperson's picture

Yes, as it is a Python app, you launch it via sailfish-qml harbour-hasher. The output should show what's going on. If the screen is white, it is most likely a QML error. I'm on an Xperia X with 3.1 Seitseminen and can only test it there...
Have you tried reinstalling?

olf's picture

[...] launch it via sailfish-qml harbour-hasher.

Moved to Hasher issue #23.

Have you tried reinstalling?

Yes, but that did not make any difference.

nobodyinperson's picture

Ah wait, the SDK can be used to test on different versions, right? I never use the SDK as I don't like depending on GUIs.

olf's picture

Well, the other way is to compare the API documentation and employ measures as nicely implemented here or as hinted in issue #23.

BTW, something prevents the Hasher RPMs > 0.2.0 to be installed on SailfishOS 2.2.1, but I haven't had the time to take a closer look, yet.

nobodyinperson's picture

That's most likely a problem with the required Python version in the dependencies. Oulanka updated Python from 3.4 to 3.7. Can you install python3-xdgspec, python3-attrs and python3-base91 (see my other apps on OpenRepos) manually?

EDIT: I rebuilt the three abovementioned packages to not include the Requires: python(abi) = 3.7 dependency which was automatically added. That should theoretically fix installation of these packages on SailfishOS < Oulanka.

olf's picture

Thanks for your prompt reply.

Yes, after a
pkcon install python3-xdgspec python3-attrs python3-base91
pkcon update harbour-hasher
is working fine.

P.S.: Hence I can confirm issue #23 on a second device (Jolla1@SFOS2.2.1).

nobodyinperson's picture

As of Hasher v0.8 both the Python backend and the QML UI should be compatible with older SailfishOS versions.

nobodyinperson's picture

Wonderful. Thanks for the feedback. I am nearly finished making the backend Python 3.4-compatible (which it currently is not - another problem for earlier SailfishOS versions). After that, I'll tackle the Icon issue #23.

Historyscholar's picture

Chinese translation has updated!:)

nobodyinperson's picture

What do you mean by that? :-) Should I have recieved a message with the new translations? Or did I misspell something?

EDIT:  Alright, I recieved the translations, thank you!