Comment puis-je utiliser C# sur une machine WinXP SP2 compatible FIPS pour hacher de façon unique le contenu d'un fichier donné? Je ne suis pas préoccupé par la performance (encore?). Heureusement, quelqu'un peut signaler une exception à la "règle", mais il semble que les classes "* ServiceProvider" sont compatibles avec FIPS et indisponibles sous WinXP, alors que les classes "* Managed" sont disponibles sur WinXP et non sur FIPS -compliant.HashAlgorithm compatible FIPS sous WinXP?
Et MD5 est sorti car il n'est pas fiable de manière unique (oui, même cette petite probabilité est inacceptable pour mon projet).
Aucun algorithme de hachage n'est fiable de façon unique. Par le [principe du pigeonhole] (http://en.wikipedia.org/wiki/Pigeonhole_principle), vous ne pouvez pas représenter de manière unique tous les fichiers possibles de n'importe quelle longueur en utilisant un hachage à longueur fixe. –
Bien que techniquement vrai, ce n'est pas très utile en informatique ces jours-ci. L'idée est que vous êtes prêt à prendre la chance que ce n'est pas unique, compte tenu des probabilités de l'algorithme. MD5 a été montré pour ne pas valoir le risque, mais SHA256 et SHA512 en valent la peine. SHA1 tombe quelque part entre et est assez bon pour beaucoup de gens, bien que j'hésiterais à l'employer moi-même. Je n'utiliserais jamais MD5. –