example - C#Byte[] Encriptación
simple encryption c# (2)
¿Le duele la adición de 1 a 16 bytes? AES rellenará de forma predeterminada utilizando el siguiente método:
private static void EncryptThenDecrypt()
{
byte[] message; // fill with your bytes
byte[] encMessage; // the encrypted bytes
byte[] decMessage; // the decrypted bytes - s/b same as message
byte[] key;
byte[] iv;
using (var rijndael = new RijndaelManaged())
{
rijndael.GenerateKey();
rijndael.GenerateIV();
key = rijndael.Key;
iv = rijndael.IV;
encMessage = EncryptBytes(rijndael, message);
}
using (var rijndael = new RijndaelManaged())
{
rijndael.Key = key;
rijndael.IV = iv;
decMessage = DecryptBytes(rijndael, encMessage);
}
}
private static byte[] EncryptBytes(
SymmetricAlgorithm alg,
byte[] message)
{
if ((message == null) || (message.Length == 0))
{
return message;
}
if (alg == null)
{
throw new ArgumentNullException("alg");
}
using (var stream = new MemoryStream())
using (var encryptor = alg.CreateEncryptor())
using (var encrypt = new CryptoStream(stream, encryptor, CryptoStreamMode.Write))
{
encrypt.Write(message, 0, message.Length);
encrypt.FlushFinalBlock();
return stream.ToArray();
}
}
private static byte[] DecryptBytes(
SymmetricAlgorithm alg,
byte[] message)
{
if ((message == null) || (message.Length == 0))
{
return message;
}
if (alg == null)
{
throw new ArgumentNullException("alg");
}
using (var stream = new MemoryStream())
using (var decryptor = alg.CreateDecryptor())
using (var encrypt = new CryptoStream(stream, decryptor, CryptoStreamMode.Write))
{
encrypt.Write(message, 0, message.Length);
encrypt.FlushFinalBlock();
return stream.ToArray();
}
}
Tengo un campo Byte [] que es un contenido de archivo que necesito encriptar. Nada especial o elegante, solo lo suficiente para garantizar que la siguiente persona que lo obtenga no pueda descifrarlo fácilmente sin un esfuerzo. Usaría la encriptación que viene con .Net Framework 4.0 pero definitivamente no necesito hacer el archivo más grande de lo que es.
Pensé simplemente en invertir la matriz o agregar algunos bytes al final ...
Si puedo evitar hacer la matriz mucho más grande, sería genial.
¿Alguna sugerencia?
¡Gracias!
No invente su propio mecanismo de Encriptación (es decir, Seguridad por Ofuscación), utilice una de las clases proporcionadas por el marco .