Cryptage

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 361 fois - Téléchargée 24 fois

Contenu du snippet

Les fonctions de crytage de .Net sont tellement puissantes qu'elles en sont compliquées à utiliser simplement.
Voici une fonction d'encyptage et de une fonction décryptage simples à utiliser s'appuyant sur l'algo DES, mais qui peuvent facilement être modifier pour intégrer tripleDes,...
Rien d'exceptionnel, mais celà peut toujours aider.

Source / Exemple :


using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.IO;
using System.Text;

namespace RMTools
{
  public static class Cryptage
  {
    public static void EncryptFile(string _sInFileName, string _sOutFileName, string sKey)
    {
      DES des = new DESCryptoServiceProvider(); //Vous pouvez changer service provider
      byte[] bs = new byte[8];
      for (int i = 0; i < des.Key.Length && i<sKey.Length; i++)
			{
        bs[i] = Convert.ToByte(sKey[i]);
			}
      des.Key = bs;
      des.IV = new byte[] { 1, 6, 10, 4, 2, 6, 7, 8 }; //Peut-être modifier

      FileStream fin = new FileStream(_sInFileName, FileMode.Open, FileAccess.Read);
      FileStream fout = new FileStream(_sOutFileName, FileMode.OpenOrCreate, FileAccess.Write);
      fout.SetLength(0);

      //Create variables to help with read and write.
      byte[] bin = new byte[100]; 
      long rdlen = 0;              
      long totlen = fin.Length;    
      int len;                     
      CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(), CryptoStreamMode.Write);
      while (rdlen < totlen)
      {
        len = fin.Read(bin, 0, 100);
        encStream.Write(bin, 0, len);
        rdlen = rdlen + len;
      }
      encStream.Close();
      fout.Close();
      fin.Close();
    }

    public static bool DecryptFile(string _sInFileName, string _sOutFileName, string sKey)
    {
      DES des = new DESCryptoServiceProvider();

      byte[] bs = new byte[8];
      for (int i = 0; i < des.Key.Length && i < sKey.Length; i++)
      {
        bs[i] = Convert.ToByte(sKey[i]);
      }
      des.Key = bs;
      des.IV = new byte[] { 1, 6, 10, 4, 2, 6, 7, 8 }; 
      FileStream fin = new FileStream(_sInFileName, FileMode.Open, FileAccess.Read);
      FileStream fout = new FileStream(_sOutFileName, FileMode.OpenOrCreate, FileAccess.Write);
      fout.SetLength(0);

   
      byte[] bin = new byte[100]; 
      long rdlen = 0;              
      long totlen = fin.Length;    
      int len;                     

      CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(), CryptoStreamMode.Write);

      while (rdlen < totlen)
      {
        len = fin.Read(bin, 0, 100);
        encStream.Write(bin, 0, len);
        rdlen = rdlen + len;
      }
      try
      {
        encStream.Close();
        fout.Close();
        fin.Close();
        return true;
      }
      catch
      {
        fout.Close();
        fin.Close();
        return false;
      }
      
      
    }
  }
}

A voir également

Ajouter un commentaire

Commentaires

cs_RMI
Messages postés
305
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
2 août 2010

Il s'agit de la clé de cryptage, cette clé permet de crypter/décrypter ton fichier
lejjam
Messages postés
2
Date d'inscription
dimanche 20 avril 2008
Statut
Membre
Dernière intervention
24 janvier 2010

pouvez vous m'expliquer le rôle du parametre skey
j'ai pas compris
cs_minoucha0904
Messages postés
2
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
21 décembre 2008

quelle est la meilleur méthode de cryptage d'un texte en terme de sécurité de simplicité et de perfermance.?
Envoyez moi l'algorithme corréspondant

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.