[c#] Comment utiliser le cryptage Rijndael avec une bibliothèque de classes .Net Core? (Pas de Framework .Net)


0 Answers

Question

Comment utilisons-nous le cryptage Rijndael dans une bibliothèque de classes .Net Core? (Pas une bibliothèque de classes .Net Framework) Nous devons créer une bibliothèque .Net Core partagée pour une utilisation dans plusieurs projets et nous devons implémenter des méthodes Encrypt et Decrypt qui utilisent le même cryptage Rijndael à travers les projets.

Nous utilisons actuellement:

  • VS Enterprise 2015
  • c #
  • Bibliothèque de classes .Net Core
  • .NETStandard, Version = v1.6 référence

Il semble que l'implémentation de Rijndael et AES soit absente de la version .Net Core 1.0 ... il semble n'inclure que les classes de base. Comment obtenir une implémentation .Net Core du cryptage Rijndael ou AES ajouté comme référence à un nouveau projet .NET Core Class Library?

Voici la méthode Encrypt qui fonctionne dans .Net Framework 4.5.2:

    public static string Encrypt(string valueToEncrypt, string symmetricKey, string initializationVector)
    {
        string returnValue = valueToEncrypt;

        var aes = new System.Security.Cryptography.RijndaelManaged();
        try
        {
            aes.Key = ASCIIEncoding.ASCII.GetBytes(symmetricKey);
            aes.IV = ASCIIEncoding.ASCII.GetBytes(initializationVector);
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.ISO10126;

            var desEncrypter = aes.CreateEncryptor();
            var buffer = ASCIIEncoding.ASCII.GetBytes(valueToEncrypt);

            returnValue = Convert.ToBase64String(desEncrypter.TransformFinalBlock(buffer, 0, buffer.Length));
        }
        catch (Exception)
        {
            returnValue = string.Empty;
        }

        return returnValue;
    }



Related