Share via


Algorithmes symétriques, exemple

Mise à jour : novembre 2007

Cet exemple utilise les classes Rijndael et TripleDESCryptoServiceProvider pour implémenter un chiffrement symétrique (à clé secrète), comme décrit dans la Vue d'ensemble du chiffrement.

Pour obtenir des exemples et leurs instructions d'installation

  • Effectuez une ou plusieurs des opérations suivantes :

    • Dans le menu ? (Aide), cliquez sur Exemples.

      Le fichier Readme contient des informations sur les exemples.

    • Accédez au site Web Exemples Visual Studio 2008. La version la plus récente des exemples est disponible sur ce site.

    • Recherchez les exemples sur l'ordinateur sur lequel Visual Studio est installé. Par défaut, les exemples et un fichier Readme sont installés sous lecteur:\Program Files\Microsoft Visual Studio 9.0\Samples\1036. Pour les versions Express de Visual Studio, tous les exemples sont disponibles en ligne.

Pour plus d'informations, consultez Recherche des fichiers d'exemple.

.

Note de sécurité :

Cet exemple de code est destiné à illustrer un concept ; il présente uniquement le code qui se rapporte spécifiquement à ce concept. Il est possible qu'il ne réponde pas aux exigences de sécurité d'un environnement spécifique, et ne doit pas être utilisé exactement comme indiqué. Nous vous recommandons d'ajouter du code de sécurité et de gestion des erreurs afin de renforcer la sécurité et la fiabilité de vos projets. Microsoft fournit cet exemple de code « EN L'ÉTAT » sans aucune garantie.

Pour exécuter cet exemple

  • Appuyez sur F5.

Démonstrations

La classe SampleCrypto encapsule l'algorithme de chiffrement, le salt et le vecteur d'initialisation (IV) ainsi que les routines de chiffrement et de déchiffrement qui définissent un fichier chiffré. Le constructeur accepte un paramètre qui détermine le type de chiffrement, Rijndael ou TripleDES. Le champ correspondant dans la classe, crpSym, est du type abstrait SymmetricAlgorithm. La valeur qui lui est affectée est une instance de la classe Rijndael ou de la classe TripleDESCryptoServiceProvider. La méthode CreateSaltIVFile enregistre les valeurs salt et IV dans un fichier .dat. Les méthodes Decrypt et Encrypt traitent le fichier source qui est spécifié dans la propriété SourceFileName.

Une instance de la classe SampleCrypto est créée lorsque le formulaire est chargé. Les contrôles du formulaire illustrent les méthodes et les propriétés de la classe SampleCrypto. Lorsque l'option Encrypt with Password est activée, la clé n'est ni générée, ni définie automatiquement, mais dérivée d'un mot de passe qui a fait l'objet d'un salt. De plus, le salt et le vecteur d'initialisation (IV) persistent non chiffrés dans un fichier .dat. De cette façon, vous pouvez voir comment vous pouvez envoyer un document à quelqu'un en toute sécurité : le document chiffré peut être envoyé via une connexion non sécurisée, et le fichier .dat et le mot de passe peuvent être transférés en toute sécurité à l'aide de l'algorithme de chiffrement asymétrique (ou à clé publique). Ce type de chiffrement est la forme de chiffrement la plus sécurisée, mais demande un temps de traitement bien plus long. C'est pourquoi il est généralement utilisé pour les petits éléments tels qu'une clé secrète, un fichier salt/IV ou un mot de passe.

Voir aussi

Concepts

Modèle de chiffrement de .NET Framework

Référence

TripleDESCryptoServiceProvider

Rijndael

SymmetricAlgorithm

Salt

IV