VBScriptにコードを書き込んで、特定のファイルの SHA512値を計算しようとしています。 MSFTのドキュメント によると、SHA512ManagedオブジェクトのComputeHashメソッドには、入力として バイト配列が必要です。だから、私は SHA512の値が計算される入力ファイルを読み込むためにADODBを使用しました(AFAIKのため、VBScriptでバイト配列を作成するには がありません)。しかし、私はランタイムエラー5を取得 メソッドを呼び出すときに 'プロシージャコールまたは引数が無効です'。下のコードの 可変長はByte()型です - VBScriptは言います。VBScriptエラー5 'System.Security.Cryptography.SHA512Managed'でsha512を計算しようとしています
誰かが間違っていると教えてもらえますか?
コード:
Option Explicit
'
'
'
Dim scs, ado
Dim bar, hsh
Set scs = CreateObject("System.Security.Cryptography.SHA512Managed")
Set ado = CreateObject("ADODB.Stream")
ado.type = 1 ' TypeBinary
ado.open
ado.LoadFromFile WScript.ScriptFullName
bar = ado.Read
ado.Close
MsgBox TypeName(bar) & "/" & LenB(bar) & "/" & Len(bar),,"Box 1"
' Displays : "Byte()/876/438"
On Error Resume Next
' Attempt 1
Set hsh = scs.ComputeHash(bar)
MsgBox Hex(Err.Number) & "/" & Err.Description,,"Set hsh = "
' Displays : "5/Invalid procedure call or argument"
' Attempt 2
hsh = scs.ComputeHash(bar)
MsgBox Hex(Err.Number) & "/" & Err.Description,,"hsh = "
' Displays : "5/Invalid procedure call or argument"
MsgBox TypeName(scs),,"scs" ' Displays : "SHA512Managed"
Set ado = Nothing
Set scs = Nothing
WScript.Quit
バーは、実行しているスクリプトを参照しています。使用していないファイルを参照する同じエラーが発生しますか? – Sorceri