1

Тема: VBScript: вычисление хэша MD5 файла

Option Explicit

Const CAPICOM_HASH_ALGORITHM_MD5 =       3
Const adTypeBinary               =       1

Const lngPortion                 =    1024 ' 1048576


Dim objStream
Dim objHashedData


' CAPICOM 2.1.0.2 (http://support.microsoft.com/kb/931906/)
Set objHashedData = WScript.CreateObject("CAPICOM.HashedData")
Set objStream     = WScript.CreateObject("ADODB.Stream")

objHashedData.Algorithm = CAPICOM_HASH_ALGORITHM_MD5

With objStream
    .Type = adTypeBinary
    .Open()
    .LoadFromFile("C:\Install\Microsoft Windows Update\KB931906\CAPICOM-KB931906-v2102.exe")
    
    Do Until .EOS
        objHashedData.Hash .Read(lngPortion)
    Loop
    
    .Close
End With

WScript.Echo "MD5 Hash: [" & objHashedData.Value & "]"

Set objStream     = Nothing
Set objHashedData = Nothing

WScript.Quit 0

Замечания:
* кроме MD5 также можно вычислять хэши (вычисление по алгоритмам SHA* потребует «Capicom.dll» выше версии 2.0.0.3):

Const CAPICOM_HASH_ALGORITHM_SHA1    = 0
Const CAPICOM_HASH_ALGORITHM_MD2     = 1
Const CAPICOM_HASH_ALGORITHM_MD4     = 2
Const CAPICOM_HASH_ALGORITHM_MD5     = 3
Const CAPICOM_HASH_ALGORITHM_SHA_256 = 4
Const CAPICOM_HASH_ALGORITHM_SHA_384 = 5
Const CAPICOM_HASH_ALGORITHM_SHA_512 = 6

* см. также тему VBScript: Вычисление хэша MD5 строки.

Автор идеи — abasov.