Cómo cifrar y descifrar archivos usando Visual C#
Respuesta sencilla.
¿Escribir el código primero?///?lt;Summarygt;
//?Cifrar datos (de la memoria al archivo)
//?lt; /summarygt;
public?static?void?Encrypt()
{
//Crear un objeto de archivo, el modo de archivo es crear un nuevo archivo , acceso a archivos para escritura!
FileStream?fs?=?new?FileStream(@"J:\works\Demo.txt",?FileMode.Create,?FileAccess.Write);
Console.WriteLine ("Ingrese la cadena que desea cifrar:");
string?Input?=?Console.ReadLine();
//Convertir cadena a bytes
byte[]?YourInputStorage?=?System.Text.Encoding.UTF8.GetBytes(Input);
//Crear una clase de cifrado de algoritmo DES
DESCryptoServiceProvider ?MyServiceProvider?=?new?DESCryptoServiceProvider();
//Crear el objeto de interfaz de transformación Crypto a través del método CreateEncryptor del algoritmo DES Objeto de clase Crypto
ICryptoTransform?MyTransform?=? MyServiceProvider.CreateEncryptor
(¿nuevo?byte[]{100, 110, 120, 130, 100, 110, 120, 130}, nuevo?byte[]{100, 110, 120, 130, 100, 110, 120, 130});
//La función del objeto CryptoStream es conectar el flujo de datos al flujo de transformación cifrado
CryptoStream?MyCryptoStream?=?new?CryptoStream(fs,? MyTransform,?CryptoStreamMode.Write) ;
//Escribe los datos de la matriz de bytes en la secuencia cifrada
MyCryptoStream.Write(YourInputStorage, 0, YourInputStorage.Length); p>
// Cerrar el objeto de flujo cifrado
MyCryptoStream.Close();
}
//?lt;Summarygt;
//? Descifrar datos (del archivo a la memoria)
//?lt;/summarygt;
public?static?void?Decrypt()
{
FileStream?fs?=?new?FileStream("Demo.txt",?FileMode.Open,?CreateEncryptor método, crea un objeto de interfaz de conversión de descifrado
/ //[Clave secreta del algoritmo simétrico] Debe ser la [Clave secreta del algoritmo simétrico] durante el cifrado
///[Vector de inicialización del algoritmo simétrico] Debe ser el [Vector de inicialización del algoritmo simétrico] ] durante el cifrado
///Si es inconsistente, se lanzará una excepción.
ICryptoTransform?MyTransform?=?MyServiceProvider.CreateDecryptor
(nuevo?byte[]{100, 110, 120, 130, 100, 110, 120, 130}, nuevo ?byte []{100, 110, 120, 130, 100, 110, 120, 130});
CryptoStream?MyCryptoStream?=?new?CryptoStream(fs,?MyTransform,?CryptoStreamMode. Leer);
byte[]?YourInputStorage?=?new?byte[1000];
int?Text.Encoding.UTF8.GetString(YourInputStorage, 0, len));
}
Los espacios de nombres principales son el espacio de nombres System.Security.Cryptography y el espacio de nombres System.IO.
Si está satisfecho, por favor acepte, gracias.