User Tools

Site Tools


6.10.1 Calculate hash value of a file

In the present project, you can select a file in the dialogue and calculate the special SHA256 hash value of the file. As an extension, you can compare the calculated hash value with the known hash value of the selected file - if you know it.

As an example, you will be shown how to check the integrity of an ISO image that is already in the download directory.

Figure Checking the integrity of ISO images

For the linuxmint-18.3-cinnamon-64bit.iso file, you can get the hash value from the sha256sum.txt file, which you copy to the download directory using the following command:

wget -O $HOME/Downloads/sha256sum.txt

This line from the contents of the file is important:

ecebdf9ac4697b6c2d7feffd1bc5430641bca67c7df122fa2914824dc8844b3a *linuxmint-18.3-cinnamon-64bit.iso

First enter the hash value of the Mint 18.3 version in the yellow text field. Then select the appropriate ISO file in the download directory in the dialogue. The comparison of the calculated SHA256 hash value and the value from the Mint website in the file sha256sum.txt was successful!

Note that calculating the hash value for a 2GB file, for example, may well take a few seconds! Digression

For checking authenticity, the same source returns with this command in a console:

wget -O \

the file sha256sum.txt.gpg. The following command checks whether the file sha256sum.txt is correctly signed by Mint:

hans@mint-183 ~/Downloads $ gpg --verify sha256sum.txt.gpg sha256sum.txt
gpg: Signature of Wed 13 Dec 2017 17:16:15 CET using RSA key ID A25BAE09.
gpg: Correct signature of "Linux Mint ISO Signing Key <>".
gpg: WARNING: This key does not carry a trusted signature!
gpg: There is no indication that the signature really belongs to the alleged owner.
Main fingerprint = 27DE B156 44C6 B3CF 3BD7 D291 300F 846B A25B AE09
hans@mint-183 ~/Downloads $

The warning “There is no indication that the signature really belongs to the alleged owner.” is justified - here is the quick check in a console for the ID given above:

hans@mint-183 ~/Downloads $ gpg --list-key --with-fingerprint A25BAE09
pub   4096R/A25BAE09 2016-06-07
      Schl.-Fingerprint = 27DE B156 44C6 B3CF 3BD7  D291 300F 846B A25B AE09
uid   Linux Mint ISO Signing Key <> Project - source code

The source code is given in full:

' Gambas class file
' A hash process generates a number from a string in a file.
Public sOriginalText As String
Private sFilePath As String = User.Home
Public aDigestList As String[]
Public aCipherList As String[]
Public Sub Form_Open()
  FMain.Caption = "Calculation of SHA256 hash value for files"
  FMain.Resizable = False
  txaText.Wrap = True
Public Sub DigestSupportedSHA256()
  If Digest.IsSupported("SHA256") = True Then
     txaText.Text = "\nThe system supports 'SHA256'!"
     txaText.Text = "\nThe system does not support 'SHA256'!"
Public Sub btnDigestFromFile_Click()
  Dim sPath As String
  Dim vRawData As Variant
  Dialog.Title = ("Select a file!")
  Dialog.Path = sFilePath
  If Dialog.OpenFile() Then Return
  sPath = Dialog.Path
  Inc Application.Busy
    vRawData = Digest["SHA256"].Hash(File.Load(sPath)) ' Attention! Highly compressed source code
  Dec Application.Busy
  txaText.Text = "\nSHA256 hash for the file '" & File.Name(Dialog.Path) & "'\n\n"
  txaText.Text &= "Format hexadecimal:" & gb.NewLine
  txaText.Text &= StringToHex(vRawData) & gb.NewLine
  If txbCheck.Text Then
     If StringToHex(vRawData) = txbCheck.Text Then
        txaText.Text &= Subst("\n&1 '&2' &3", ("The check of the file"), File.Name(sPath), ("was successful!"))
        txaText.Text &= Subst("\n&1 '&2' &3", ("The check of the file"), File.Name(sPath), ("was *not* successful!"))
    Message.Error(sPath & " not available.\n" & Error.Text)
Private Function StringToHex(sString As String) As String
  Dim iByte As Byte
  Dim sResult As String
  For Each iByte In Byte[].FromString(sString)
    sResult &= Lower$(Hex$(CLong(iByte), 2))
  Return sResult
Public Sub btnClose_Click()


The website uses a temporary session cookie. This technically necessary cookie is deleted when the browser is closed. You can find information on cookies in our privacy policy.
k6/k6.10/k6.10.1/start.txt · Last modified: 16.01.2022 (external edit)

Page Tools