Crypter et décrypter une chaîne en C#
-
Crypter une chaîne avec la classe
AesManaged
enC#
-
Décrypter une chaîne avec la classe
AesManaged
enC#
Ce didacticiel abordera les méthodes de chiffrement et de déchiffrement d’une chaîne en C#.
Crypter une chaîne avec la classe AesManaged
en C#
Le cryptage est le processus de conversion des données en texte chiffré afin que toute personne non autorisée ne puisse pas accéder aux données. Dans ce tutoriel, nous utiliserons l’algorithme Advanced Encryption Standard
(AES) pour crypter et décrypter une chaîne en C#. La classe AesManaged
fournit des méthodes pour crypter et décrypter notre chaîne en utilisant l’algorithme AES. La fonction CreateEncryptor()
peut crypter les données à l’aide d’une clé. Nous devons passer nos clés de chaîne à la fonction CreateEncryptor()
. L’exemple de code suivant nous montre comment chiffrer une chaîne selon l’algorithme AES avec la fonction CreateEncryptor()
en C#.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace encrypt_decrypt_string {
class Program {
static string Encrypt() {
try {
string textToEncrypt = "WaterWorld";
string ToReturn = "";
string publickey = "12345678";
string secretkey = "87654321";
byte[] secretkeyByte = {};
secretkeyByte = System.Text.Encoding.UTF8.GetBytes(secretkey);
byte[] publickeybyte = {};
publickeybyte = System.Text.Encoding.UTF8.GetBytes(publickey);
MemoryStream ms = null;
CryptoStream cs = null;
byte[] inputbyteArray = System.Text.Encoding.UTF8.GetBytes(textToEncrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) {
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateEncryptor(publickeybyte, secretkeyByte),
CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
ToReturn = Convert.ToBase64String(ms.ToArray());
}
return ToReturn;
} catch (Exception ex) {
throw new Exception(ex.Message, ex.InnerException);
}
}
static void Main(string[] args) {
string encrypted = Encrypt();
Console.WriteLine(encrypted);
}
}
}
Production:
6 + PXxVWlBqcUnIdqsMyUHA ==
Dans le code ci-dessus, nous avons chiffré la chaîne WaterWorld
avec les clés publickey
et secretkey
et renvoyé le 6+PXxVWlBqcUnIdqsMyUHA==
sous forme de chaîne chiffrée. Les deux clés doivent comporter au moins 8 caractères.
Décrypter une chaîne avec la classe AesManaged
en C#
Le déchiffrement est le processus de conversion du texte chiffré en données d’origine afin que les personnes autorisées puissent accéder aux données. La fonction CreateDecryptor()
permet de décrypter les données à l’aide d’une clé. Nous devons passer nos clés de chaîne à la fonction CreateEncryptor()
. Les clés doivent être les mêmes que celles utilisées dans la fonction CreateDecryptor()
. L’exemple de code suivant nous montre comment chiffrer une chaîne selon l’algorithme AES avec la fonction CreateDecryptor()
en C#.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace encrypt_decrypt_string {
class Program {
static string Decrypt() {
try {
string textToDecrypt = "6+PXxVWlBqcUnIdqsMyUHA==";
string ToReturn = "";
string publickey = "12345678";
string secretkey = "87654321";
byte[] privatekeyByte = {};
privatekeyByte = System.Text.Encoding.UTF8.GetBytes(secretkey);
byte[] publickeybyte = {};
publickeybyte = System.Text.Encoding.UTF8.GetBytes(publickey);
MemoryStream ms = null;
CryptoStream cs = null;
byte[] inputbyteArray = new byte[textToDecrypt.Replace(" ", "+").Length];
inputbyteArray = Convert.FromBase64String(textToDecrypt.Replace(" ", "+"));
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) {
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateDecryptor(publickeybyte, privatekeyByte),
CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
Encoding encoding = Encoding.UTF8;
ToReturn = encoding.GetString(ms.ToArray());
}
return ToReturn;
} catch (Exception ae) {
throw new Exception(ae.Message, ae.InnerException);
}
}
static void Main(string[] args) {
string decrypted = Decrypt();
Console.WriteLine(decrypted);
}
}
}
Production:
WaterWorld
Dans le code ci-dessus, nous avons converti la chaîne cryptée 6+PXxVWlBqcUnIdqsMyUHA==
de l’exemple précédent à sa forme originale WaterWorld
avec les clés publickey
et secretkey
. Les clés doivent être les mêmes que les clés utilisées dans l’exemple précédent pour que cette méthode fonctionne.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInArticle connexe - Csharp String
- C# Convert String to enum
- C# Convertir Int en String
- Utiliser des chaînes dans l'instruction Switch en C#
- Comment convertir une chaîne de caractères en booléen en C#
- Comment convertir une chaîne de caractères en un tableau d'octets en C#
- Comment convertir une chaînes de caractères pour qu'elle flotte en C#