Exemple #1
0
        public JsonResult SymmetricEncrypt(WebSecurity.Models.EncryptionModel encryption, string ButtonType)
        {
            var result = new EncryptionModel();

            var symEncryption = new SymmetricEncryption();

            SymmetricAlgorithm symAlgo = new AesManaged();

            symAlgo.Padding = PaddingMode.PKCS7;
            var key = string.Empty;
            var iv  = string.Empty;

            if (!string.IsNullOrEmpty(encryption.PrivateKey) && !string.IsNullOrEmpty(encryption.InitializationVector))
            {
                symAlgo.Key = Convert.FromBase64String(encryption.PrivateKey);
                symAlgo.IV  = Convert.FromBase64String(encryption.InitializationVector);
            }
            else
            {
                key = Convert.ToBase64String(symAlgo.Key);
                iv  = Convert.ToBase64String(symAlgo.IV);
            }

            if (ButtonType == "Encrypt")
            {
                var encryptedText = symEncryption.EncryptText(symAlgo, encryption.PlainText);
                result = new EncryptionModel()
                {
                    EncryptedText        = encryptedText,
                    PlainText            = encryption.PlainText,
                    InitializationVector = iv,
                    PrivateKey           = key
                };
            }
            else if (ButtonType == "Decrypt")
            {
                var plainText = symEncryption.DecryptData(symAlgo, encryption.EncryptedText);

                result = new EncryptionModel()
                {
                    EncryptedText        = encryption.EncryptedText,
                    PlainText            = plainText,
                    PrivateKey           = encryption.PrivateKey,
                    InitializationVector = encryption.InitializationVector
                };
            }

            return(Json(result));
        }