Hatena::Groupvbscript

System.Security

主要な Windows 標準コンポーネントの一覧 → http://vbscript.g.hatena.ne.jp/keyword/ProgID
VBScript 基礎文法最速マスター → http://vbscript.g.hatena.ne.jp/cx20/20100131/1264906231

System.Security

概要

System.Security .NET Framework の名前空間(Namespace)です。

.NET Framework のクラスの一部が COM コンポーネントとして登録されている為、VBScript 等から .NET Framework の機能を利用することが可能です。

ProgIDリファレンス
System.Security.Cryptography.SHA1CryptoServiceProviderSHA1CryptoServiceProvider クラス
System.Security.Cryptography.MD5CryptoServiceProviderMD5CryptoServiceProvider クラス

サンプル

' File : GetFileHashMD5.vbs
' Usage : CScript //Nologo GetFileHashMD5.vbs
' Description : VBScript から MD5 Crypto Service Provider を使用してファイルのハッシュ値を取得するサンプル。
Option Explicit

Call Main()

Sub Main()
    Dim strFileName
    strFileName = "C:\Data\Tools\FCIV\fciv.exe"
    Dim strMD5
    strMD5 = GetFileHashMD5(strFileName)
    WSCript.Echo strMD5
End Sub

Function GetFileHashMD5(strFileName)
    Dim md5
    Set md5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
    md5.ComputeHash_2(ReadBinaryFile(strFileName))
    
    Dim msxml
    Set msxml = CreateObject("MSXML2.DOMDocument")
    Dim el
    Set el = msxml.CreateElement("tmp")
    el.DataType = "bin.hex"
    el.NodeTypedValue = md5.Hash
    GetFileHashMD5 = el.Text
End Function

Function ReadBinaryFile(strFileName)
    Const adTypeBinary = 1
    Dim stm
    Set stm = CreateObject("ADODB.Stream")
    stm.Type = adTypeBinary
    stm.Open
    stm.LoadFromFile strFileName
    ReadBinaryFile = stm.Read
End Function

実行結果

C:\home\edu\vbscript\crypto>cscript //Nologo GetFileHashMD5.vbs

e2c6d562bd35352b73c00a744e9c07c6
C:\>fciv "C:\Data\Tools\FCIV\fciv.exe" -md5
//
// File Checksum Integrity Verifier version 2.05.
//
e2c6d562bd35352b73c00a744e9c07c6 c:\data\tools\fciv\fciv.exe

参考情報