Jump to content
argumentum

sum of hash [solved]

Recommended Posts

argumentum

I've got a bunch of hash from files in a folder

0x45B265C13EC41DD3272E547A837EF0604E06EF6C
0x73418EE0D435F0995DE000A0CB9A895B8031D62B
0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B
0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A
0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57
0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150
0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D
0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5
0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71
0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685
0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF
0x32C2A01B523D973D933FC004237CAB4B792231BF
0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587

how can I make a sum of the hash to have a hash that'd represent these hash as a single hash resultant of these ?.
I was thinking of sorting them and adding 'em to a string and hash that string but there may be a proper way to do it.
Any and all ideas are welcomed.

Edited by argumentum
edit title / solved

Share this post


Link to post
Share on other sites
TheDcoder

Not sure if its possible :unsure:...


AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Spoiler

My contributions to the AutoIt Community

If I have hurt or offended you in anyway, Please accept my apologies, I never (regardless of the situation) mean to do that to anybody!!!

3fHNZJ.gif

PLEASE JOIN ##AutoIt AND HELP THE IRC AUTOIT COMMUNITY!

Share this post


Link to post
Share on other sites
argumentum
1 minute ago, TheDcoder said:

Not sure if its possible :unsure:...

in Func _Crypt_HashData($vData, $iALG_ID, $fFinal = True, $hCryptHash = 0) it shows that you can continue adding strings, continuing on a prior string, that in itself should have a hash. It should be possible. I just don't know how.

Share this post


Link to post
Share on other sites
BrewManNH

Where does the hash data come from?


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
Danyfirex

Hello. This is a simple idea. (it does not mean that it is strictly correct.)

 

#include <Crypt.au3>
#include <Array.au3>

Local $aHashes1[] = ["0x45B265C13EC41DD3272E547A837EF0604E06EF6C", _
        "0x73418EE0D435F0995DE000A0CB9A895B8031D62B", _
        "0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B", _
        "0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A", _
        "0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57", _
        "0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150", _
        "0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D", _
        "0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5", _
        "0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71", _
        "0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685", _
        "0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF", _
        "0x32C2A01B523D973D933FC004237CAB4B792231BF", _
        "0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587"]

;other sort
Local $aHashes2[] = ["0x45B265C13EC41DD3272E547A837EF0604E06EF6C", _
        "0x73418EE0D435F0995DE000A0CB9A895B8031D62B", _
        "0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A", _
        "0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D", _
        "0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57", _
        "0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150", _
        "0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B", _
        "0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5", _
        "0x32C2A01B523D973D933FC004237CAB4B792231BF", _
        "0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71", _
        "0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685", _
        "0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF", _
        "0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587"]

_ArrayDisplay($aHashes1)
_ArrayDisplay($aHashes2)

Local $sHash1 = _SumOfHashes($aHashes1)
Local $sHash2 = _SumOfHashes($aHashes2)
ConsoleWrite("Total Hash1: " & $sHash1 & @CRLF)
ConsoleWrite("Total Hash2: " & $sHash2 & @CRLF)


Func _SumOfHashes($aHashes)
    Local $iNumber = 0
    For $i = 0 To UBound($aHashes) - 1
        $iNumber += _CRC32($aHashes[$i])
    Next
    Return _Crypt_HashData($iNumber, $CALG_SHA1)
EndFunc   ;==>_SumOfHashes

Func _CRC32($Data, $CRC32 = -1)
    Local $Opcode = '0xC800040053BA2083B8EDB9000100008D41FF516A0859D1E8730231D0E2F85989848DFCFBFFFFE2E78B5D088B4D0C8B451085DB7416E3148A1330C20FB6D2C1E80833849500FCFFFF43E2ECF7D05BC9C21000'

    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    Local $Input = DllStructCreate("byte[" & BinaryLen($Data) & "]")
    DllStructSetData($Input, 1, $Data)

    Local $Ret = DllCall("user32.dll", "uint", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
            "ptr", DllStructGetPtr($Input), _
            "int", BinaryLen($Data), _
            "uint", $CRC32, _
            "int", 0)
    $Input = 0
    $CodeBuffer = 0

    Return $Ret[0]
EndFunc   ;==>_CRC32

Saludos

  • Like 2

Share this post


Link to post
Share on other sites
Danyfirex
10 hours ago, argumentum said:

in Func _Crypt_HashData($vData, $iALG_ID, $fFinal = True, $hCryptHash = 0) it shows that you can continue adding strings, continuing on a prior string, that in itself should have a hash. It should be possible. I just don't know how.

I didn't see this question. Should be something like this:

 

#include <Crypt.au3>
#include <Array.au3>

Local $aHashes1[] = ["0x45B265C13EC41DD3272E547A837EF0604E06EF6C", _
        "0x73418EE0D435F0995DE000A0CB9A895B8031D62B", _
        "0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B", _
        "0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A", _
        "0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57", _
        "0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150", _
        "0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D", _
        "0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5", _
        "0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71", _
        "0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685", _
        "0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF", _
        "0x32C2A01B523D973D933FC004237CAB4B792231BF", _
        "0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587"]

;other sort
Local $aHashes2[] = ["0x45B265C13EC41DD3272E547A837EF0604E06EF6C", _
        "0x73418EE0D435F0995DE000A0CB9A895B8031D62B", _
        "0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A", _
        "0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D", _
        "0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57", _
        "0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150", _
        "0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B", _
        "0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5", _
        "0x32C2A01B523D973D933FC004237CAB4B792231BF", _
        "0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71", _
        "0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685", _
        "0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF", _
        "0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587"]

;~ _ArraySort($aHashes1)
;~ _ArraySort($aHashes2)

_ArrayDisplay($aHashes1)
_ArrayDisplay($aHashes2)


_Crypt_Startup() ; To optimize performance start the crypt library.


Local $sHash1 = _SumOfHashes($aHashes1)
Local $sHash2 = _SumOfHashes($aHashes2)
ConsoleWrite("Total Hash1: " & $sHash1 & @CRLF)
ConsoleWrite("Total Hash2: " & $sHash2 & @CRLF)


 _Crypt_Shutdown() ; Shutdown the crypt library.


Func _SumOfHashes($aHashes)
Local $HashObject=_Crypt_HashData( "", $CALG_SHA1, False)
For $i=0 to UBound($aHashes)-1
    $HashObject=_Crypt_HashData( $aHashes[$i], $CALG_SHA1, False,$HashObject)
Next
Return _Crypt_HashData( "", $CALG_SHA1, True,$HashObject)
EndFunc   ;==>_SumOfHashes

But array must be sorted to match.

 

Saludos

 

Saludos

Share this post


Link to post
Share on other sites
spudw2k

Share this post


Link to post
Share on other sites
argumentum
15 hours ago, BrewManNH said:

Where does the hash data come from?

these are hash from files in a folder.

9 hours ago, spudw2k said:

I've also got a HashArray function in my sig.  Just for some more ideas.

Very cool code.

 

11 hours ago, Danyfirex said:

I didn't see this question. Should be something like this:

Well, that is what I did:

#include <Array.au3>
#include <Crypt.au3>

Local $sHashes = "0x45B265C13EC41DD3272E547A837EF0604E06EF6C"&@TAB& _
        "0x73418EE0D435F0995DE000A0CB9A895B8031D62B"&@TAB& _
        "0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A"&@TAB& _
        "0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D"&@TAB& _
        "0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57"&@TAB& _
        "0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150"&@TAB& _
        "0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B"&@TAB& _
        "0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5"&@TAB& _
        "0x32C2A01B523D973D933FC004237CAB4B792231BF"&@TAB& _
        "0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71"&@TAB& _
        "0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685"&@TAB& _
        "0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF"&@TAB& _
        "0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587"
ConsoleWrite('--- "' & HashOfHashes( $sHashes ) & '"' & @CRLF )

Local $aHashes2[] = ["0x45B265C13EC41DD3272E547A837EF0604E06EF6C", _
        "0x73418EE0D435F0995DE000A0CB9A895B8031D62B", _
        "0xE8BC5E1676E64E9EE77A7EBD56D910D60D453A2A", _
        "0x8CABC5A4BDA856E0D0E884D0F4A335CB2457941D", _
        "0xFF311E2FEC610B2E0A3169435CBC48D5B1B53A57", _
        "0x728EDF8577DF247CBC69ED6F2F9EACB3BF845150", _
        "0x6FB325DDFA9AFCB148B815F41C94F5BBC3735E0B", _
        "0xCEBB04B9099141009329E13EDBD8B5CFB14A49A5", _
        "0x32C2A01B523D973D933FC004237CAB4B792231BF", _
        "0xD7AA968FCF6AC9691F6ED801BA9291EBBBAFED71", _
        "0xBBBA76A66C54D53BADE77245D9F205F1EB9CC685", _
        "0x39DD14E5DB99F39F68182494C0B48CEFB5DDFDDF", _
        "0x6AE1A10B7505DDABEECEAFD13B2EC2A8D7286587"]

ConsoleWrite('--- "' & HashOfHashes( $aHashes2 ) & '"' & @CRLF )

Func HashOfHashes( $sTabDelimitedHashes = "" , $sDelemiter = @TAB )
    Local $aHashes, $u1, $n, $bHashes = ""
    If IsArray($sTabDelimitedHashes) Then
        $aHashes = $sTabDelimitedHashes
    Else
        $aHashes = StringSplit( $sTabDelimitedHashes , $sDelemiter , 2)
    EndIf
    _ArraySort($aHashes)
    $u1 = UBound($aHashes) -1
    For $n = 0 To $u1
        $bHashes &= BinaryToString($aHashes[$n])
    Next
    Return _Crypt_HashData($bHashes,$CALG_SHA1)
EndFunc

 

14 hours ago, Danyfirex said:

Hello. This is a simple idea. (it does not mean that it is strictly correct.)

Well, in a way it is, a hash is an identifier and that is what I was looking for. The CRC32 is cool idea, actually, all are good.
I'll use my code*, that is like your last code. The idea is sound. The reason for the tab delimited string example is because, in my project, it actually is a  tab delimited string but I asked of it as if in an array, because, I thought there would be a proper ( and elegant ) way that it is done.
But all in all, all I needed is an unique identifier for the folder ( that in the project is compressed and uploaded ), as to not upload a new ZIP file that even so, the zip may have a different hash, the contents would not have different hashes and to save database space, a hash of the hashes is sufficient. So, if the system finds that a files was modified but the hashes are the same, no actual change in any of the files, instead of asking and keeping so much data, one hash would be enough.

Bottom line, thank you all for your attention to this question of mine. I can now be at ease that my reasoning was ok.

:)

*I'll use my code because it showed to be the faster one.

And an unrelated question: How do I edit the title of this topic ? ( I'd like to add [solved] to it ) 

Edited by argumentum
thanks Synapsee :)

Share this post


Link to post
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

  • Similar Content

    • Danyfirex
      By Danyfirex
      Hello guys. Here is a small function to create a hash hmac  similar to hash_hmac PHP function.  
      Supported are: SHA512,SHA256,SHA1,SHA384,MD5 and RIPEMD160.
       
      Local $sSecret = "SecretKey" Local $sMessage = "AutoIt Rocks!!!" ConsoleWrite("HMAC-SHA256: " & @TAB & @TAB & _HashHMAC("SHA512", $sMessage, $sSecret) & @CRLF) ConsoleWrite("HMAC-SHA256: " & @TAB & @TAB & _HashHMAC("SHA256", $sMessage, $sSecret) & @CRLF) ConsoleWrite("HMAC-SHA1: " & @TAB & @TAB & _HashHMAC("SHA1", $sMessage, $sSecret) & @CRLF) ConsoleWrite("HMAC-SHA384: " & @TAB & @TAB & _HashHMAC("SHA384", $sMessage, $sSecret) & @CRLF) ConsoleWrite("HMAC-MD5: " & @TAB & @TAB & _HashHMAC("MD5", $sMessage, $sSecret) & @CRLF) ConsoleWrite("HMAC-RIPEMD160: " & @TAB & _HashHMAC("RIPEMD160", $sMessage, $sSecret) & @CRLF) Func _HashHMAC($sAlgorithm, $bData, $bKey, $bRaw_Output = False) Local $oHashHMACErrorHandler = ObjEvent("AutoIt.Error", "_HashHMACErrorHandler") Local $oHMAC = ObjCreate("System.Security.Cryptography.HMAC" & $sAlgorithm) If @error Then SetError(1, 0, "") $oHMAC.key = Binary($bKey) Local $bHash = $oHMAC.ComputeHash_2(Binary($bData)) Return SetError(0, 0, $bRaw_Output ? $bHash : StringLower(StringMid($bHash, 3))) EndFunc ;==>_HashHMAC Func _HashHMACErrorHandler($oError) ;Dummy Error Handler EndFunc ;==>_HashHMACErrorHandler It requires .NET Framework  2.0 or higher.
      Saludos
    • Graeme
      By Graeme
      I was looking for a way to calculate the sha512 value of files downloaded and eventually came across crypt.au3 in my include folder. It looks good but when I looked at the global constants the three values for Sha 2 are commented out. Is there a reason for that or should these be made available?
    • usmiv4o
      By usmiv4o
      #cs ---------------------------------------------------------------------------- AutoIt Version: 3.2.4.3 Author: usmiv4o Script Function: AutoIt script to check if files in directory are changed. It is usefull for security contra-inteligense measures. Function Name: LoadTripwireDB() Description: Loads database (text file tripwire.txt) and compare files in /test folder for changes. compares Hash (MD5) checksums. If they are not the same starts Initial() Function Name: Initial() Description: Checks directory and makes index of files and their MD5 checksums in text file (tripwire.txt) Function Name: Hush() Description: Checks file and returns its MD5 checksum. Requirement(s): Windows XP Return Value(s): On Success - Returns true. Files are the same as before. On Failure - return false. Example: LoadTripwireDB() #ce ---------------------------------------------------------------------------- #include <Crypt.au3> #include <File.au3> #include <Array.au3> $sDir = @ScriptDir & "\Test" $sFilePath = @ScriptDir & "\tripwire.txt" Func Hush(ByRef $sFile) $sRead = FileOpen( $sFile) $dHash = _Crypt_HashData($sRead, $CALG_MD5) ; Create a hash of the text entered. ConsoleWrite("Hash of file " & $sFile & " is " & $dHash & @CRLF) EndFunc ;ConsoleWrite("Files in Dir are " & $aScriptDir[0] & @CRLF) ;$sFilePath = @ScriptDir & "\Examples.txt" ;_FileWriteFromArray($sFilePath, $aScriptDir, 1) ;_ArrayDisplay($aScriptDir, "1D display") Func Initial() $aScriptDir = _FileListToArray($sDir) for $i = 1 To UBound($aScriptDir) - 1 $dHash = _Crypt_HashData($i, $CALG_MD5) ;ConsoleWrite("File " & $aScriptDir[$i] & " is " & $dHash & @CRLF) ConsoleWrite($aScriptDir[$i] & ":" & $dHash & @CRLF) ;Hush($aScriptDir[$i]) ;FileWrite $hFileOpen = FileOpen($sFilePath, $FO_APPEND) If $hFileOpen = -1 Then MsgBox($MB_SYSTEMMODAL, "", "An error occurred when reading the file.") EndIf FileWrite($hFileOpen, $aScriptDir[$i] & ":" & $dHash & @CRLF) Next EndFunc Func Monitor() $aScriptDir = _FileListToArray($sDir) for $i = 1 To UBound($aScriptDir) - 1 Next EndFunc Func LoadTripwireDB() $comparison_ok = false $dArray = _FileListToArray($sDir) ;directory $dArray0 = UBound($dArray) - 1 $fArray = FileReadToArray($sFilePath) ;file $fArray0 = UBound($fArray) ;_ArrayDisplay($dArray, "files array") if $dArray0 = $fArray0 Then ; are file same as recorded in txt file? ;ConsoleWrite("files in monitoring dir: " & $dArray[0] & " = file recorded: " & $fArray0 & @CRLF & $fArray[0]& @CRLF) for $i = 1 To UBound($dArray) - 1 ;ConsoleWrite("i = " & $i & @CRLF) $dHash = _Crypt_HashData($i, $CALG_MD5) ;binary ;$dHash = BinaryToString($dHash) $ffhash = StringSplit( $fArray[$i-1],":") $fhash = $ffhash[2] ;ConsoleWrite("IsBinary $dHash " & IsBinary($dHash) & @CRLF) if $dHash = $fhash Then ;if compared hashes are equal ;ConsoleWrite($fhash & ":" & $dHash & " equal" & @CRLF) ;ConsoleWrite("File: " & $fhash & @CRLF & "Directory: " & $dHash & @CRLF & "equal: yes " & @CRLF) Else ;if compared hashes are not equal ;ConsoleWrite("File: " & $fhash & @CRLF & "Directory: " & $dHash & @CRLF & "equal: not " & @CRLF) ;MsgBox(0,"hash md5",$fhash & ":" & $dHash & " not equal") EndIf Next ;ConsoleWrite("hashes are equal" & @CRLF) $comparison_ok = true Else ConsoleWrite("number of files in monitoring dir are not same as recorded" & @CRLF) ConsoleWrite("directory: " & $dArray[0] &":"& "files: " & UBound($fArray) - 1 & @CRLF) EndIf Return $comparison_ok EndFunc #main if LoadTripwireDB() = true Then ConsoleWrite(" hashes are equal " & @CRLF) ElseIf LoadTripwireDB() <> true Then ConsoleWrite(" hashes are not equal " & @CRLF) ConsoleWrite(" hashes are not equal " & @CRLF) Initial() EndIf  
      tripwire.au3
      tripwire.txt
    • Crash
      By Crash
      Dear AutoIt communities,
      I wish to perform SHA-256 hashing with AutoIt. I noticed Help File shows the use of MD2, MD4, MD5, SHA1. To my knowledge, all of these aren't cryptographically secure anymore and SHA-2 (SHA-256, SHA-384, SHA-512) is the way to hash passwords.
      I poked around Crypt.au3 and found SHA-2 constants are commented out. Why is this? I'm using latest public release, v 3.3.14.2
      ; #CONSTANTS# =================================================================================================================== Global Const $PROV_RSA_FULL = 0x1 Global Const $PROV_RSA_AES = 24 Global Const $CRYPT_VERIFYCONTEXT = 0xF0000000 Global Const $HP_HASHSIZE = 0x0004 Global Const $HP_HASHVAL = 0x0002 Global Const $CRYPT_EXPORTABLE = 0x00000001 Global Const $CRYPT_USERDATA = 1 Global Const $CALG_MD2 = 0x00008001 Global Const $CALG_MD4 = 0x00008002 Global Const $CALG_MD5 = 0x00008003 Global Const $CALG_SHA1 = 0x00008004 ; Global Const $CALG_SHA_256 = 0x0000800c ; Global Const $CALG_SHA_384 = 0x0000800d ; Global Const $CALG_SHA_512 = 0x0000800e Global Const $CALG_3DES = 0x00006603 Global Const $CALG_AES_128 = 0x0000660e Global Const $CALG_AES_192 = 0x0000660f Global Const $CALG_AES_256 = 0x00006610 Global Const $CALG_DES = 0x00006601 Global Const $CALG_RC2 = 0x00006602 Global Const $CALG_RC4 = 0x00006801 Global Const $CALG_USERKEY = 0 Global Const $KP_ALGID = 0x00000007  
      I thought this could be compatibility issues, and older Windows doesn't support SHA-2.
      Without knowing what I am doing, MSDN help appears to say SHA256 is available since Windows Platform 10 (https://msdn.microsoft.com/en-us/library/system.security.cryptography.sha256(v=vs.110).aspx) However other sources said SHA-2 has been supported since Win XP SP 3.
      What is happening? How can I implement SHA-2 with confidence that it will work on Win XP? Unfortunately I do not have an older computer or virtual PC to test it out. I'm running latest Windows 10 and SHA-256, SHA-384, SHA-512 all works fine. (If you like to try on your machine, I've attached the help file hashing example with SHA-2 algo added)
       
      Thank you yet again
      Crash
      sdfsdaf.au3
    • Danyfirex
      By Danyfirex
      Hi every body. Today I want to share this small aplication(source code only) to check Hash in virustotal. (it is not a best coding practices example lol)
      VirusTotal Hash Checker Allow you to check hash and files in virustotal.com using its Public API service.
      Aplication Information.
      -Add one or more Files 
      -Add all files in a folder
      -Add a MD5
      -Add a MD5 File List
      -Automatic verification
      -Check Single File
      -Show Scan
      -Show Scan in Web
      -Open in Folder
      -Clear List
      Capture:

       
      Files in the rar file.
      VirusTotal Hash Checker.au3 Detected.ico ok.ico wait.ico nofound.ico  
      VirusTotal Hash Checker.rar
       
      Saludos
×