Jump to content

Hash file int a variable


Recommended Posts

Hello forum, from _Crypt_HashFile example that comes with Autoit, I would like to write in the console as it appears on the GUI and put into a variable the return value of the function.

I attempted to pass it from binary to string without success. Any help will he appreciated.

Thanks a lot.

#include <Crypt.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <String.au3>
Local $bAlgorithm = $CALG_SHA1
GUICreate("Hash File", 425, 70)
Local $iInput = GUICtrlCreateInput(@ScriptFullPath, 5, 5, 200, 20)
Local $iBrowse = GUICtrlCreateButton("...", 210, 5, 35, 20)
Local $iCombo = GUICtrlCreateCombo("", 250, 5, 100, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "MD2|MD4|MD5|SHA1", "SHA1")
Local $iCalculate = GUICtrlCreateButton("Calculate", 355, 40, 65, 25)
Local $iHashLabel = GUICtrlCreateLabel("Hash Digest", 5, 50, 350, 25)
GUISetState(@SW_SHOW)
_Crypt_Startup() ; To optimize performance start the crypt library.
While 1
Switch GUIGetMsg()
  Case $GUI_EVENT_CLOSE
   Exit
  Case $iBrowse
   Local $sFilePath = FileOpenDialog("Open a file", "", "All files (*.*)") ; Select a file to find the hash.
   If @error Then
    ContinueLoop
   EndIf
   GUICtrlSetData($iInput, $sFilePath) ; Set the inputbox with the filepath.
   GUICtrlSetData($iHashLabel, "Hash Digest") ; Reset the hash digest label.
  Case $iCombo ; Check when the combobox is selected and retrieve the correct algorithm.
   Switch GUICtrlRead($iCombo) ; Read the combobox selection.
    Case "MD2"
     $bAlgorithm = $CALG_MD2
    Case "MD4"
     $bAlgorithm = $CALG_MD4
    Case "MD5"
     $bAlgorithm = $CALG_MD5
    Case "SHA1"
     $bAlgorithm = $CALG_SHA1
   EndSwitch
  Case $iCalculate
   Local $sRead = GUICtrlRead($iInput)
   If StringStripWS($sRead, 8) <> "" And FileExists($sRead) Then ; Check there is a file available to find the hash digest
    Local $bHash = _Crypt_HashFile($sRead, $bAlgorithm) ; Create a hash of the file.
    GUICtrlSetData($iHashLabel, $bHash) ; Set the hash digest label with the hash data.
    ConsoleWrite(BinaryToString($bHash))
   EndIf
EndSwitch
WEnd
_Crypt_Shutdown() ; Shutdown the crypt library.
Link to comment
Share on other sites

jcpetu,

Try the following...

#include <Crypt.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <String.au3>
Local $bAlgorithm = $CALG_SHA1
GUICreate("Hash File", 425, 70)
Local $iInput = GUICtrlCreateInput(@ScriptFullPath, 5, 5, 200, 20)
Local $iBrowse = GUICtrlCreateButton("...", 210, 5, 35, 20)
Local $iCombo = GUICtrlCreateCombo("", 250, 5, 100, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "MD2|MD4|MD5|SHA1", "SHA1")
Local $iCalculate = GUICtrlCreateButton("Calculate", 355, 40, 65, 25)
Local $iHashLabel = GUICtrlCreateLabel("Hash Digest", 5, 50, 350, 25)
GUISetState(@SW_SHOW)
_Crypt_Startup() ; To optimize performance start the crypt library.

local $myhash = ''                                          ;  <------ to hold the hash value

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $iBrowse
            Local $sFilePath = FileOpenDialog("Open a file", "", "All files (*.*)") ; Select a file to find the hash.
            If @error Then
                ContinueLoop
            EndIf
            GUICtrlSetData($iInput, $sFilePath) ; Set the inputbox with the filepath.
            GUICtrlSetData($iHashLabel, "Hash Digest") ; Reset the hash digest label.
        Case $iCombo ; Check when the combobox is selected and retrieve the correct algorithm.
            Switch GUICtrlRead($iCombo) ; Read the combobox selection.
                Case "MD2"
                    $bAlgorithm = $CALG_MD2
                Case "MD4"
                    $bAlgorithm = $CALG_MD4
                Case "MD5"
                    $bAlgorithm = $CALG_MD5
                Case "SHA1"
                    $bAlgorithm = $CALG_SHA1
            EndSwitch
        Case $iCalculate
            Local $sRead = GUICtrlRead($iInput)
            If StringStripWS($sRead, 8) <> "" And FileExists($sRead) Then ; Check there is a file available to find the hash digest
                Local $bHash = _Crypt_HashFile($sRead, $bAlgorithm) ; Create a hash of the file.
                GUICtrlSetData($iHashLabel, $bHash) ; Set the hash digest label with the hash data.

                ConsoleWrite('Hash = ' & $bHash & @lf)      ; <-------  write hash to console
                $myhash = $bHash                            ; <-------  save hash to variable
                msgbox(0,'Yo, this is the hash value!!',$bHash) ; <----  just for grins

            EndIf
    EndSwitch
WEnd
_Crypt_Shutdown() ; Shutdown the crypt library.

kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Link to comment
Share on other sites

That example I wrote ages ago. Wow it's badly designed, back when I didn't know much about anything. Sorry guys.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...