FuryCell Posted January 4, 2006 Posted January 4, 2006 (edited) The code for these UDFs have not been updated in quite some time , and is now incompatible with new versions of both autoit and MD5 deep. As such I recommended using one of the many other hashing UDFS and/or plug ins available on the forum.Here are the UDFs I just made, _StringHash() and _FileHash(). They let you generate MD5,SHA1,SHA256,Tiger, and WhirlPool hashes for files and strings. To use them you need the *Deep set of command line utilities which can be downloaded here.Here is an example of using _StringHash to get an MD5 of a string:#Include<StringHash.au3> $Return=_StringHash("Test",0) MsgBox(0,@Error,$Return)Here is an example of using _FileHash to get an MD5 of a file:#Include<FileHash.au3> $Return=_FileHash(@SystemDir & "\Notepad.exe",0) MsgBox(0,@Error,$Return)It should be noted that you do not need all of the *Deep utilities,just the one(s) for the hash method(s) your script uses.Also,The _FileHash UDF is based on the old _FileHash* udfs I made a while back.Enjoy -SolidSnake Edit:changed headers to reflect my new email address and posted new download link. (Previous Downloads 211)The file can be downloaded here. Edited September 27, 2009 by P5ych0Gigabyte HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
FuryCell Posted January 4, 2006 Author Posted January 4, 2006 Updated. Fixed some documentation typos. Download from post above. HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
gcriaco Posted March 17, 2006 Posted March 17, 2006 What about adding HMAC hash function to your UDF? Thanks anyway for sharing your code and best regards Peppe
FuryCell Posted March 18, 2006 Author Posted March 18, 2006 (edited) What about adding HMAC hash function to your UDF?Thanks anyway for sharing your code and best regardsPeppejust looked at http://en.wikipedia.org/wiki/HMAC and an hmac func sounds pretty cool but does not seem necessary as just hashing $data&$Key and then comparing would work fine. however maybe if i do manage to get some free time. (been busy with school and some other projects) i might be able to create a function.thanks for the reply. -solidsnake Edited March 18, 2006 by SolidSnake HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
nfwu Posted March 18, 2006 Posted March 18, 2006 Finally I see these UDFs... I've been looking high and low for these... I need the for the AutoIt clone of MSN messenger! #) TwitterOut of date stuff:Scripts: Sudoku Solver | Webserver | 3D library (Pure AutoIt) | Wood's GadgetsUDFs: _WoodUniqueID() | _DialogEditIni() | _Console*() | _GetIPConfigData() | _URLEncode/Decode()
FuryCell Posted March 19, 2006 Author Posted March 19, 2006 Finally I see these UDFs... I've been looking high and low for these...I need the for the AutoIt clone of MSN messenger!#)Glad they could be of use to somebody. HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
RazerM Posted March 19, 2006 Posted March 19, 2006 these are very useful - very easy to get a md5 hash(or any others for that matter) My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop.
FuryCell Posted March 19, 2006 Author Posted March 19, 2006 these are very useful - very easy to get a md5 hash(or any others for that matter)Thanks for the feedback. Glad people are finding these useful. HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
kmps Posted March 22, 2006 Posted March 22, 2006 Hello, I got problem,when I compile my script using your fuction _StringHash(),error like below displayed:C:\Program Files\AutoIt3\Include\StringHash.au3 (102) : ==> Unknown function name.: StdinWrite($hPID, $sString) ^ ERRORplease help me!thank you very much.Thanks for the feedback. Glad people are finding these useful.
FuryCell Posted March 22, 2006 Author Posted March 22, 2006 Hello, I got problem,when I compile my script using your fuction _StringHash(),error like below displayed:C:\Program Files\AutoIt3\Include\StringHash.au3 (102) : ==> Unknown function name.: StdinWrite($hPID, $sString) ^ ERRORplease help me!thank you very much.In order to use these udfs you need to be using the lastest beta version of autoit as it uses new functions only found in the beta.get the beta here. http://www.autoitscript.com/autoit3/files/beta/autoit/ -SolidSnake HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
sanautoit Posted August 30, 2008 Posted August 30, 2008 Congratulations for your work, it's very, very useful UDF.
kjcdude Posted September 26, 2008 Posted September 26, 2008 I get error 6 every single time. I verified the placement of of the exes and it still happens.
dbzfanatic Posted October 3, 2008 Posted October 3, 2008 This shortened version seems to be more reliable for me. I tried your original function with no success so I modified it to simply use md5 (all I need for this project) but you should be able to see the changes and implement them. Func _FileHash($sFile, $vEXEPath = -1) GUICtrlSetData($txtHash,"Processing...") Local $sEXEPath, $hPID, $sLine, $iFileNameLen, $sHash, $iHashLen If Not FileExists($sFile) Or StringInStr(FileGetAttrib($sFile), "D") Or StringInStr($sFile, "*") Or StringInStr($sFile, "?") Or Not StringInStr($sFile, "\") Then SetError(1) Return "" EndIf $iHashLen = 32 $hPID = Run(@TempDir & "\md5deep.exe " & '"' & $sFile & '"',@TempDir,@SW_HIDE,2) $iError = @error If $iError Then SetError(5) Return "" EndIf While ProcessExists("md5deep.exe") $sLine = StdoutRead($hPID,True) WEnd $iFileNameLen = StringLen($sFile) $sHash = StringStripWS(StringTrimRight($sLine, $iFileNameLen + 1),8) SetError(0) ProcessClose("md5deep.exe") Return $sHash EndFunc ;==>_FileHash Go to my website. | My Zazzle Page (custom products)Al Bhed Translator | Direct linkScreenRec ProSimple Text Editor (STE) [TUTORIAL]Task Scheduler UDF <--- First ever UDF!_ControlPaste() UDF[quote name='renanzin' post='584064' date='Sep 26 2008, 07:00 AM']whats help ?[/quote]
euverve Posted December 15, 2008 Posted December 15, 2008 I have try the FH but it gives me an error:>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Documents and Settings\thata\Desktop\HashUDFs\FHExample.au3" /autoit3dir "C:\Program Files\AutoIt3" /UserParams +>09:05:32 Starting AutoIt3Wrapper v.1.10.1.14 Environment(Language:0409 Keyboard:00000409 OS:WIN_XP/Service Pack 2 CPU:X86 ANSI)>Running AU3Check (1.54.13.0) from:C:\Program Files\AutoIt3C:\Documents and Settings\thata\Desktop\HashUDFs\Hash.au3(75,79) : ERROR: Opt() called with illegal argument 1: "RunErrorsFatal" If $iRunErrorsFatal <> -1 Then $iOPT = Opt("RunErrorsFatal", $iRunErrorsFatal) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\Documents and Settings\thata\Desktop\HashUDFs\Hash.au3(78,60) : ERROR: Opt() called with illegal argument 1: "RunErrorsFatal" If $iRunErrorsFatal <> -1 Then Opt("RunErrorsFatal", $iOPT) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\Documents and Settings\thata\Desktop\HashUDFs\Hash.au3(80,61) : ERROR: Opt() called with illegal argument 1: "RunErrorsFatal" If $iRunErrorsFatal <> -1 Then Opt("RunErrorsFatal", $iOPT) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\Documents and Settings\thata\Desktop\HashUDFs\Hash.au3(174,79) : ERROR: Opt() called with illegal argument 1: "RunErrorsFatal" If $iRunErrorsFatal <> -1 Then $iOPT = Opt("RunErrorsFatal", $iRunErrorsFatal) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\Documents and Settings\thata\Desktop\HashUDFs\Hash.au3(177,60) : ERROR: Opt() called with illegal argument 1: "RunErrorsFatal" If $iRunErrorsFatal <> -1 Then Opt("RunErrorsFatal", $iOPT) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\Documents and Settings\thata\Desktop\HashUDFs\Hash.au3(178,60) : ERROR: Opt() called with illegal argument 1: "RunErrorsFatal" If $iRunErrorsFatal <> -1 Then Opt("RunErrorsFatal", $iOPT) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\Documents and Settings\thata\Desktop\HashUDFs\FHExample.au3 - 6 error(s), 0 warning(s)how do i fix this?
wraithdu Posted December 15, 2008 Posted December 15, 2008 Did you take a minute to read the error output? Opt("RunErrorsFatal") is a deprecated option and no longer exists. You'll have to remove the references to it in the UDF.
FuryCell Posted December 15, 2008 Author Posted December 15, 2008 Did you take a minute to read the error output? Opt("RunErrorsFatal") is a deprecated option and no longer exists. You'll have to remove the references to it in the UDF.These UDFs have not been updated in I while and seem to be incompatible with the new versions of md5dep as a result.I don't see them worth updating since there are now better ways to hash in autoit now anyway. I'm going to put a disclaimer that these are unsupported. However if someone wants to update them feel free. HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
BerndH Posted May 1, 2010 Posted May 1, 2010 First I always get an @Error=5 with the original Hash.au3! It seems to be a timing problem between au3 and *Deep utility. Until the RunErrorsFatal need to be deleted because no support anymore 16th May 2008 (v3.2.12.0), so I use the version of <dbzfanatic> to generate the _StringHash Function. It's works for me now. Enjoy! expandcollapse popup; Syntax: _StringHash($sString,$iMethod) ; $sString The string to generate the hash for. ; $iMethod hashing method ; 0 Use MD5 hashing method ; 1 Use SHA1 hashing method ; 2 Use SHA256 hashing method ; 3 Use Tiger hashing method ; 4 Use WhirlPool hashing method ; ; Return Value(s): On Success - Returns the hash for $sString ; On Failure - Returns an empty string and sets @Error on errors ; @Error=1 $iMethod was invalid (must be an integer between 0 and 4) ; @Error=2 nop ; @Error=3 The *Deep utility was not found (This function expects it to be in @ScriptDir & "\<HASHMETHODNAME>Deep.exe" (where <HASHMETHODNAME> is name of the hash method such as MD5) unless set differently with the parameter $vEXEPath) ; @Error=4 Run Failed ( Support Files terminate -> Error returned to @EXTENDED) ; @Error=5 Hash Generation Failed (The output from the *Deep utility was invalid or possibly timing STDIO) ; @Error=6 Transmit to *Deep utility Failed (*Deep utility not correctly receive Data or possibly timing STDIO) ; ; ;It's tested on: ; * au3 version 3.3.2.0 ; * md5deep-3.6 ; * win2k $Return = _StringHash ("Test", 0) MsgBox(0, @error, $Return) $Return = _StringHash ("Test", 1) MsgBox(0, @error, $Return) $Return = _StringHash ("Test", 2) MsgBox(0, @error, $Return) $Return = _StringHash ("Test", 3) MsgBox(0, @error, $Return) $Return = _StringHash ("Test", 4) MsgBox(0, @error, $Return) ;=============================================================================== Func _StringHash($sString, $iMethod) Local $sEXEPath, $iHashLen, $iOPT, $hPID, $sHash, $sEXEPath, $iError Switch $iMethod Case 0 $sEXEPath = @ScriptDir & "\MD5Deep.exe" $iHashLen = 32 Case 1 $sEXEPath = @ScriptDir & "\SHA1Deep.exe" $iHashLen = 40 Case 2 $sEXEPath = @ScriptDir & "\SHA256Deep.exe" $iHashLen = 64 Case 3 $sEXEPath = @ScriptDir & "\TigerDeep.exe" $iHashLen = 48 Case 4 $sEXEPath = @ScriptDir & "\WhirlPoolDeep.exe" $iHashLen = 128 Case Else ;error: $iMethod was invalid (must be an integer between 0 and 4) SetError(1) Return '' EndSwitch If Not FileExists($sEXEPath) Then ;error: Support file(s) not exist(s) SetError(3) Return '' Endif $hPID = Run($sEXEPath, @SystemDir, @SW_HIDE, 3) $iError = @error If $iError Then ;error: Support files terminate -> @EXTENDED SetError(4,$iError) Return '' EndIf Local $r1,$r2 While ProcessExists($hPID) $r1=StdinWrite($hPID, $sString) $r2=StdinWrite($hPID) Sleep(100) ;MsgBox(0,'debug' , 'pid ' &$hPID &@cr &$iHashLen &@cr &$r1 &' ' &$r2) if $r1<> StringLen($sString) then ;error: transmit error if not shutdown you get a infinite loop StdioClose ($hPID) ProcessClose($hPID) SetError(6) Return '' endif WEnd $sHash = StringTrimRight(StdoutRead($hPID,True), 1) StdioClose ($hPID) ;close resources related to STDIO ;MsgBox(0,'debug' , 'pid ' &$hPID &@cr &'hash ' &$sHash &@cr &'lenth ' &StringLen($sHash) &@cr) If Not StringIsXDigit($sHash) Or StringLen($sHash) <> $iHashLen Then ProcessClose($hPID) SetError(5) Return '' EndIf ProcessClose($hPID) SetError(0) Return $sHash EndFunc ;==>_StringHash
logmein Posted May 2, 2010 Posted May 2, 2010 (edited) This UDF is unstable! I have got a lot of errors! Edited May 2, 2010 by logmein [font=arial, helvetica, sans-serif][s]Total USB Security 3.0 Beta[/s] | [s]Malware Kill[/s] | Malware Scanner | Screen Hider | Locker | Matrix Generator[s]AUTO-SYNC 1.0 | MD5 Hash Generator | URL Checker | Tube Take [/s]| Random Text[/font]
FuryCell Posted May 2, 2010 Author Posted May 2, 2010 This UDF is unstable! I have got a lot of errors!Did you read the red text at the top and notice the fact most of the post is crossed out?The code for these UDFs have not been updated in quite some time , and is now incompatible with new versions of both autoit and MD5 deep. As such I recommended using one of the many other hashing UDFS and/or plug ins available on the forum. HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now