J'essaie d'écrire un morceau de code dans VBScript pour calculer la valeur SHA512 pour un fichier donné. Selon la documentation MSFT la méthode ComputeHash de l'objet SHA512Managed nécessite un tableau en tant qu'entrée. J'ai donc utilisé ADODB pour lire le fichier d'entrée dont la valeur SHA512 doit être calculée (Parce que, AFAIK, il n'y a aucun moyen pour construire un tableau d'octets dans VBScript). Cependant, j'obtiens une erreur d'exécution 5, 'Appel ou argument de procédure invalide' lors de l'appel de la méthode. La barre de variable dans le code ci-dessous est de type Byte() - VBScript dit.Erreur VBScript 5 essayant de calculer sha512 avec 'System.Security.Cryptography.SHA512Managed'
Quelqu'un pourrait-il me dire ce qui ne va pas?
code:
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
barre fait référence au script que vous exécutez. Avez-vous la même erreur référençant un fichier qui n'est pas utilisé? – Sorceri