ce code ci-dessous est très bien fonctionné dans Windows 8.1 et 10 et testé dans windows xp SP3 il ne fonctionne pas et renvoie la valeur nulle et aussi même problème dans sha1, sha384 mais MD5 fonctionne bien et obtenir la sortie de retour mais d'autres ne pouvaient pas , -t windows xp sp3 support des fonctions de somme de contrôle sha ou besoin des codes spéciaux (désolé pour le pauvre anglais)Sha256, Sha384, Sha512 ne fonctionne pas dans WIndows XP?
Public Function GetSha512Hash()
Dim _flexe$ = ""
Dim _result$ = ""
Try
_flexe$ = IO.Path.Combine(Application.ExecutablePath)
Using _sha512 As New System.Security.Cryptography.SHA512CryptoServiceProvider
Using stream = File.OpenRead(_flexe$)
Dim _hash = _sha512.ComputeHash(stream)
_result$ = BitConverter.ToString(_hash).Replace("-", String.Empty)
Trace.WriteLine(String.Format("{0}", _result$))
Return _result$
End Using
End Using
Catch ex As Exception
Trace.WriteLine(Err.Description)
Me.PEx = ex
Return _result$
End Try
End Function
'SHa384
Public Function GetSha384Hash()
Dim _flexe$ = ""
Dim _result$ = ""
Try
_flexe$ = IO.Path.Combine(Application.ExecutablePath)
Using _sha512 As New System.Security.Cryptography.SHA384CryptoServiceProvider
Using stream = File.OpenRead(_flexe$)
Dim _hash = _sha512.ComputeHash(stream)
_result$ = BitConverter.ToString(_hash).Replace("-", String.Empty)
Trace.WriteLine(String.Format("{0}", _result$))
Return _result$
End Using
End Using
Catch ex As Exception
Trace.WriteLine(Err.Description)
Me.PEx = ex
Return _result$
End Try
End Function
Les classes de l'espace de noms Cryptographie dont le nom contient «CryptoServiceProvider» dépendent d'un CAPI, un composant installable fourni par le système d'exploitation. Donc, ne pas l'avoir installé est le premier mode de défaillance de base. XP remonte également à une époque où le gouvernement des États-Unis imposait des restrictions à l'exportation sur les logiciels cryptographiques, ce qui ne donnait aux résidents des États-Unis que l'accès aux chiffrements plus avancés. Les utilisateurs de SO doivent compléter leur profil pour obtenir une aide efficace. Envisagez d'utiliser les fournisseurs gérés purs, comme SHA512Managed. –
merci monsieur, alors je peux utiliser 'si Environment.OSVersion.Version.Major <= 5 Then' utilisé SHA1Managed autre SHA1CryptoServiceProvider .. suis-je correct – DVELPR
Difficile à deviner, vous n'avez pas expliqué du tout pourquoi vous préférez CSP et pourquoi il soudainement serait correct de ne pas l'utiliser sur une vieille machine. Ce n'est pas un choix aléatoire, certains utilisateurs exigent l'utilisation d'un algorithme certifié. Parlez à vos utilisateurs. N'oubliez pas de mentionner l'exigence d'installation CAPI pendant que vous faites. –