尝试使用 'System.Security.Cryptography.SHA512Managed' 计算 sha512 的 VBScript 错误 5
VBScript error 5 trying to compute sha512 with 'System.Security.Cryptography.SHA512Managed'
我正在尝试用 VBScript 编写一段代码来计算
给定文件的 SHA512 值。根据 MSFT 文档
SHA512Managed 对象的 ComputeHash 方法需要一个
字节数组作为输入。所以我用 ADODB 读取输入文件
要计算 SHA512 值(因为,AFAIK,没有办法
在 VBScript 中构建字节数组)。但是我收到运行时错误 5,
'Invalid procedure call or argument' 调用方法时。这
下面代码中的变量 bar 是 Byte() 类型 - VBScript 说。
谁能告诉我哪里出了问题?
代码:
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
使用
hsh = scs.ComputeHash_2((bar))
(没有设置,_2后缀不要取其他ComputeHash方法,传值())
参见 here。
我正在尝试用 VBScript 编写一段代码来计算 给定文件的 SHA512 值。根据 MSFT 文档 SHA512Managed 对象的 ComputeHash 方法需要一个 字节数组作为输入。所以我用 ADODB 读取输入文件 要计算 SHA512 值(因为,AFAIK,没有办法 在 VBScript 中构建字节数组)。但是我收到运行时错误 5, 'Invalid procedure call or argument' 调用方法时。这 下面代码中的变量 bar 是 Byte() 类型 - VBScript 说。
谁能告诉我哪里出了问题?
代码:
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
使用
hsh = scs.ComputeHash_2((bar))
(没有设置,_2后缀不要取其他ComputeHash方法,传值())
参见 here。