Je dois implémenter le cryptage/décryptage AES 256 et je n'ai pas pu trouver d'exemple qui fonctionne correctement.
MSDN suggère que je devrais utiliser la classe AES.
La classe Rijndael est le prédécesseur de l'algorithme Aes. Vous devez utiliser l'algorithme Aes au lieu de Rijndael. Pour plus d'informations, consultez l'entrée Les différences entre Rijndael et AES dans le blog de sécurité .NET.
Quelqu'un pourrait-il m'indiquer un bon exemple en utilisant la classe AES pour AES256?
Pour ajouter un peu plus de clarté:
J'ai un fichier de chiffrement qui contient la clé partagée et une chaîne de texte crypté. J'ai besoin de décrypter le texte puis de le valider.
Tous les exemples que j'ai vus attendent au moins 2 paramètres pour effectuer le cryptage/décryptage.
Dois-je pouvoir déduire le vecteur d'initialisation et la clé du texte dans le fichier de chiffrement?
Voici un exemple du texte contenu dans mon fichier de chiffrement:
ÊÚḠ± Ìrá ƒ @ † ²; Ä; öDWnªóª © © ¨¦L
Une fois que j'avais découvert toutes les informations sur la façon dont mon client gérait le chiffrement/déchiffrement à leur fin, c'était simple en utilisant exemple AesManaged suggéré par dtb.
Le code finalement implémenté a commencé comme ceci:
try
{
// Create a new instance of the AesManaged class. This generates a new key and initialization vector (IV).
AesManaged myAes = new AesManaged();
// Override the cipher mode, key and IV
myAes.Mode = CipherMode.ECB;
myAes.IV = new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // CRB mode uses an empty IV
myAes.Key = CipherKey; // Byte array representing the key
myAes.Padding = PaddingMode.None;
// Create a encryption object to perform the stream transform.
ICryptoTransform encryptor = myAes.CreateEncryptor();
// TODO: perform the encryption / decryption as required...
}
catch (Exception ex)
{
// TODO: Log the error
throw ex;
}
Peut-être que cet exemple répertorié ici peut vous aider. Déclaration de l'auteur
environ 24 lignes de code à chiffrer, 23 à déchiffrer