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);
}
Newsletter
Abonnez-vous pour être averti des nouveaux articles publiés.
Pages
Catégories
- 79 .NET
- 35 General
- 7 Hardware
- 5 Architecture applicative
- 4 J2EE
- 2 Cloud
- 2 Microsoft
- 2 Rails
- 2 WPF
- 1 Architecture technique
- 1 Astronomie
- 1 IA