Performance: Data encryption basics
MEDIUM IMPACT
This affects the time it takes to encrypt and decrypt data, impacting app responsiveness and load times when handling secure data.
using System.Security.Cryptography; public class Encryptor { private Aes aes; private ICryptoTransform encryptor; public Encryptor(byte[] key, byte[] iv) { aes = Aes.Create(); aes.Key = key; aes.IV = iv; encryptor = aes.CreateEncryptor(aes.Key, aes.IV); } public string EncryptData(string plainText) { using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write)) { using (StreamWriter sw = new StreamWriter(cs)) { sw.Write(plainText); } return Convert.ToBase64String(ms.ToArray()); } } } }
using System.Security.Cryptography;
public string EncryptData(string plainText, byte[] key, byte[] iv) {
using (Aes aes = Aes.Create()) {
aes.Key = key;
aes.IV = iv;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
using (MemoryStream ms = new MemoryStream()) {
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write)) {
using (StreamWriter sw = new StreamWriter(cs)) {
sw.Write(plainText);
}
return Convert.ToBase64String(ms.ToArray());
}
}
}
}| Pattern | CPU Usage | Main Thread Blocking | Responsiveness Impact | Verdict |
|---|---|---|---|---|
| Creating new encryptor each call | High CPU spikes | Blocks main thread 50-100ms | Causes input lag (INP) | [X] Bad |
| Reusing encryptor instance | Lower CPU spikes | Blocks main thread <10ms | Smooth input responsiveness | [OK] Good |