J'essaie de crypter le corps d'un courriel qui sera stocké dans une base de données, afin d'éviter que des personnes non autorisées ne le lisent et pour éviter les attaques par injection SQL.
1- Que pensez-vous du cryptage de l'email ?
2- Pourquoi ça ne marche pas ? Je veux apprendre à crypter un texte de toute façon.
SymmetricAlgorithm symAlgo = SymmetricAlgorithm.Create();
// I will not use the default keys, although I think they are random enough.
symAlgo.GenerateKey();
symAlgo.GenerateIV();
byte[] key = symAlgo.Key;
byte[] iv = symAlgo.Key;
ICryptoTransform crypto = symAlgo.CreateEncryptor();
byte[] block = UtilityMA.StringUtil.ConvertUTF16StringToByteArray(HTMLBody);
byte[] cipherText = new byte[block.Length + 32];
crypto.TransformBlock(block, 0, block.Length, cipherText, 0);
symAlgo.Clear();
crypto.Dispose();
crypto.TransformBlock déclenche une exception
System.ArgumentException n'a pas été géré par le code utilisateur Message="La valeur n'est pas valide". Source="mscorlib"
StackTrace : at System.Security.Cryptography.RijndaelManagedTransform.TransformBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[] outputBuffer, Int32 outputOffset) at Demo.BLL.Contact.History.SendEmail(String HTMLBody, Int32 Record_Id) in C:\Documents et paramètres \Administrator\My Documents \Visual Studio 2008 \Projects\BLL\BLL\Contact\History.cs :ligne 35 at _Default.BtnSend_Click(Object sender, EventArgs e) in c : \Documents et paramètres \Administrator\My Documents \Visual Studio 2008 \Projects\Demos\ContactDemo\Contact.aspx.cs :ligne 46 at System.Web.UI.WebControls.Button.OnClick(EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) InnerException :