Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Chiffrer une chaîne de caractères avec System.Security.Cryptography

15 Octobre 2010 , Rédigé par Hugues MEUNIER Publié dans #.NET

L'exemple ci-dessous est une méthode qui chiffre une chaîne de caractères avec une clé de 128 bits et un vecteur d'initialisation de 128 bits. L'algorithme de chiffrement est AES 128 bits.

 

/// 
  <summary> 
  /// 
Méthode pour chiffrer une chaîne de caractères 
  /// 
</summary> 
  /// <param name="clearText">Chaîne à chiffrer 
</param> 
  /// <param name="strKey">clé de chiffrement obligatoirement de 16 caractères (128 bits) 
</param> 
  /// <param name="strIv">vecteur d'initialisation de 16 caractères (128 bits) 
</param> 
  /// <returns>une chaîne de caractères chiffrée 
</returns> 
  public static string EncryptString(string clearText, string strKey, string strIv) 
{ 
  // Place le texte à chiffrer dans un tableau d'octets 
  byte[] plainText = Encoding 
.UTF8.GetBytes(clearText); 
// Place la clé de chiffrement dans un tableau d'octets 
byte[] key = Encoding.UTF8.GetBytes(strKey); 
// Place le vecteur d'initialisation dans un tableau d'octets 
byte[] iv = Encoding.UTF8.GetBytes(strIv); 
RijndaelManaged rijndael = new RijndaelManaged(); 
  
// Définit le mode utilisé 
rijndael.Mode = CipherMode.CBC; 
// Crée le chiffreur AES - Rijndael 
ICryptoTransform 
aesEncryptor = rijndael.CreateEncryptor(key, iv); 
MemoryStream ms = new MemoryStream(); 
// Ecris les données chiffrées dans le MemoryStream 
CryptoStream cs = new CryptoStream(ms, aesEncryptor, CryptoStreamMode 
.Write); 
cs.Write(plainText, 0, plainText.Length); 
cs.FlushFinalBlock(); 
// Place les données chiffrées dans un tableau d'octet 
byte[] CipherBytes = ms.ToArray(); 
ms.Close(); 
cs.Close(); 
  
// Place les données chiffrées dans une chaine encodée en Base64 
return Convert.ToBase64String(CipherBytes); 
} 
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article