encriptar en c#

19/07/2004 - 10:53 por juanma | Informe spam
Necesito encriptar un documento para posteriormente
almacenarlo en la base de datos como un blob.

Alguien sabe como puedo encriptar con c# un documento?
Existe alguna clase ya creada para ello en c#?

Agradezco vuestra ayuda. Muchas gracias.

- JMBB -
 

Leer las respuestas

#1 José Cordero
19/07/2004 - 11:38 | Informe spam
Hola,
si existen varias clases para encriptar en c#, dependiendo del algoritmo que
quieras usar, estan bajo el espacio de nombres System.Security.Cryptography.
Te mando un ejemplo sencillo de cifrado que utilizo con el algoritmo
estándar de cifrado de datos DES.

public static void Codificar(MemoryStream texto, string archivo)

{


//Clave

byte[] desKey = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

byte[] desIV = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

//Fichero Para guardar los datos

FileStream fout = new FileStream(archivo, FileMode.OpenOrCreate,
FileAccess.Write);

fout.SetLength(0);


//Create variables to help with read and write.

byte[] bin = new byte[100]; //This is intermediate storage for the
encryption.

long rdlen = 0; //This is the total number of bytes written.

long totlen = texto.Length; //This is the total length of the input file.

int len; //This is the number of bytes to be written at a time.


DES des = new DESCryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey,
desIV), CryptoStreamMode.Write);



//Read from the input file, then encrypt and write to the output file.

while(rdlen < totlen)

{

len = texto.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}


encStream.Close();

fout.Close();

}

public static string Decodificar(string ficEntrada)

{

//Clave

byte[] desKey = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

byte[] desIV = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

//Create the file streams to handle the input and output files.

FileStream fin = new FileStream(ficEntrada, FileMode.Open, FileAccess.Read);

MemoryStream fout = new MemoryStream();

fout.SetLength(0);


//Create variables to help with read and write.

byte[] bin = new byte[100]; //This is intermediate storage for the
encryption.

long rdlen = 0; //This is the total number of bytes written.

long totlen = fin.Length; //This is the total length of the input file.

int len; //This is the number of bytes to be written at a time.


DES des = new DESCryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(desKey,
desIV), CryptoStreamMode.Write);



//Read from the input file, then encrypt and write to the output file.


while(rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}



fout.Position = 0;


StreamReader sr = new StreamReader(fout);

string linea;

string resultado = "";

while ((linea = sr.ReadLine()) != null)

{

resultado += linea+"";

}

encStream.Close();

sr.Close();

fin.Close();

fout.Close();

return resultado;

}


"juanma" escribió en el mensaje
news:01e101c46d6d$eba5a1e0$
Necesito encriptar un documento para posteriormente
almacenarlo en la base de datos como un blob.

Alguien sabe como puedo encriptar con c# un documento?
Existe alguna clase ya creada para ello en c#?

Agradezco vuestra ayuda. Muchas gracias.

- JMBB -

Preguntas similares