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)); }
public JsonResult AsymmetricEncrypt(WebSecurity.Models.EncryptionModel encryption, string ButtonType) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); string publicKey = string.Empty; // false to get the public key string privateKey = string.Empty; // true to get the private key if (!string.IsNullOrEmpty(encryption.PublicKey) && !string.IsNullOrEmpty(encryption.PrivateKey)) { publicKey = HttpUtility.HtmlDecode(encryption.PublicKey); privateKey = HttpUtility.HtmlDecode(encryption.PrivateKey); } else { publicKey = rsa.ToXmlString(false); // false to get the public key privateKey = rsa.ToXmlString(true); // true to get the private key } var result = new EncryptionModel(); var asymEncryption = new AsymmetricEncryption(); if (ButtonType == "Encrypt") { var encryptedText = asymEncryption.EncryptText(publicKey, encryption.PlainText); result = new EncryptionModel() { EncryptedText = encryptedText, PlainText = encryption.PlainText, PublicKey = HttpUtility.HtmlEncode(publicKey), PrivateKey = HttpUtility.HtmlEncode(privateKey) }; } else if (ButtonType == "Decrypt") { var plainText = asymEncryption.DecryptData(HttpUtility.HtmlDecode(encryption.PrivateKey), encryption.EncryptedText); result = new EncryptionModel() { EncryptedText = encryption.EncryptedText, PlainText = plainText, PublicKey = HttpUtility.HtmlEncode(publicKey), PrivateKey = HttpUtility.HtmlEncode(privateKey) }; } return(Json(result)); }