est-il possible d'utiliser Sha256CryptoServiceProvider et des fournisseurs SHA2 associés sur Windows XP? Je sais que les fournisseurs utilisent les services de cryptographie inclus dans Vista et ci-dessus sont-ils possible d'installer ces services dans XP à partir de Microsoft? P>
edit: strong> J'aurais dû fournir plus d'informations que la documentation sur le MSDN est fausse en ce qui concerne cette prise en charge de Windows XP. Voir http://connect.microsoft.com/visualstudio/feedback/viewfeedback. ASPX? FeedbackID = 355031 où cela est reconnu et accepté par Microsoft comme par conception. Cependant, il n'y a pas de travail autour de celui-ci (que j'ai vu), donc je n'étais donc pas sûr s'il est possible d'installer les services que cela nécessite de fonctionner correctement ou si cela ressemble à une inclinaison sur les wwills essayant d'installer IIS 6 ou 7 sur WinXP. p>
3 Réponses :
de MSDN: Sha256CryptoServiceProvider classe p>
plates-formes: Windows Vista, Windows XP SP2, Windows Server 2003 P>
J'ai eu du succès avec l'extrait suivant, même si je ne suis pas vraiment satisfait de cela et de presque affirmer une question de questions concernant les différentes manières apparemment au hasard d'instancier SHA512 code> à l'époque. Ceci est testé sur Windows XP, 7 et éventuellement Vista (je ne me souviens peut-être pas). using System.Security.Cryptography;
SHA512 hash;
try
{
hash = new SHA512Cng( );
}
catch ( PlatformNotSupportedException )
{
hash = SHA512.Create( );
}
Pourquoi pas juste utiliser toujours Sha512.Create ()?
Le problème est le service de cryptographie que SHA256 / SHA512 n'est pas inclus dans Win XP, qui soulève la plate-formeNotsupporteDeException si appelée Win XP C'est pourquoi je vous demandais s'il était possible que cela soit installé sur Win XP ou s'il est impossible du chemin Il est impossible de passer à IIS 6 ou 7 sur XP.
@Rasmus Faber: Oui, je pourrais toujours utiliser Sha512.Create (), mais je ne bénéficierai pas de la mise en œuvre récente (et supposée meilleure) sur Vista ou 7. En outre, j'ai initialement découvert le problème lors du déploiement de ma machine de développement ( gagnez 7) à une boîte Win XP.
@Chris marisic: Je ne suis pas sûr de votre commentaire; Le code ci-dessus a été testé avec succès sur Win XP (SP3) avec .NET 3.5 SP1 (IIRC, mais certainement rien de plus que cela), donc hash = SHA512.Create () me donne un objet pour calculer des hachages avec.
Il semble que la documentation de MSDN ait raison dans le sens où il devrait être pris en charge em> être pris en charge dans XP SP3 par conception, et si ce n'est pas le cas, c'est à cause d'un bug fort> Dans .NET 3.5. ASESCRYPTOSERVICEPROVIDER ET SHA256CRYPTOSERVICEPROVIDER Utilisez le même service Cryptograhics nommé "Microsoft Enhanced RSA et AES fournisseur cryptographique". Sous XP, le nom du service est légèrement différent: string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider";
if(Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor == 1)
{
providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)";
}