Cifrar archivos Algoritmo Des C#
He hecho pequeño programa para encriptar y desencriptar archivos.
La contraseña tiene que ser de 8 letras ya que el cifrado tiene preestablecido
ese numero.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Mime;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Program
{
class CryptResource
{
static void Main()
{
try
{
Console.Title = "CrypterPro 8-bit";
Console.Clear();
Console.Write("Path: ");
string filepath1 = Console.ReadLine();
Console.Write("Key: ");
string key1 = Console.ReadLine();
while (true)
{
Console.Clear();
Console.Write("1-.Encrypt\n");
Console.Write("2-.Decrypt\n");
Console.Write("3-.Exit\n");
Console.Write("Opcion: ");
int op = Console.Read();
switch (op)
{
case '1':
EncryptFile(filepath1, key1);
break;
case '2':
DecryptFile(filepath1, key1);
break;
case '3':
Environment.Exit(1);
break;
}
}
}
catch (Exception)
{
Console.Clear();
Console.Write("Error 0\n");
Console.Write("Something went wrong\n");
Console.Write("Restart program\n");
Console.ReadKey();
Environment.Exit(1);
}
}
static void EncryptFile(string filePath, string key)
{
byte[] plainContent = File.ReadAllBytes(filePath);
using (var DES = new DESCryptoServiceProvider())
{
DES.IV = Encoding.UTF8.GetBytes(key);
DES.Key = Encoding.UTF8.GetBytes(key);
DES.Mode = CipherMode.CBC;
DES.Padding = PaddingMode.PKCS7;
using (var memStream = new MemoryStream())
{
CryptoStream cryptoStream = new CryptoStream(memStream, DES.CreateEncryptor(),
CryptoStreamMode.Write);
cryptoStream.Write(plainContent, 0, plainContent.Length);
cryptoStream.FlushFinalBlock();
File.WriteAllBytes(filePath, memStream.ToArray());
Console.Clear();
}
}
}
private static void DecryptFile(string filePath, string key)
{
byte[] encrypted = File.ReadAllBytes(filePath);
using (var DES = new DESCryptoServiceProvider())
{
DES.IV = Encoding.UTF8.GetBytes(key);
DES.Key = Encoding.UTF8.GetBytes(key);
DES.Mode = CipherMode.CBC;
DES.Padding = PaddingMode.PKCS7;
using (var memStream = new MemoryStream())
{
CryptoStream cryptoStream = new CryptoStream(memStream, DES.CreateDecryptor(),
CryptoStreamMode.Write);
cryptoStream.Write(encrypted, 0, encrypted.Length);
cryptoStream.FlushFinalBlock();
File.WriteAllBytes(filePath, memStream.ToArray());
Console.Clear();
}
}
}
}
}
Version: .Net Framework 4.7.2
Codigo en C#
El arcihvo ya compilado: Mega
La contraseña tiene que ser de 8 letras ya que el cifrado tiene preestablecido
ese numero.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Mime;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Program
{
class CryptResource
{
static void Main()
{
try
{
Console.Title = "CrypterPro 8-bit";
Console.Clear();
Console.Write("Path: ");
string filepath1 = Console.ReadLine();
Console.Write("Key: ");
string key1 = Console.ReadLine();
while (true)
{
Console.Clear();
Console.Write("1-.Encrypt\n");
Console.Write("2-.Decrypt\n");
Console.Write("3-.Exit\n");
Console.Write("Opcion: ");
int op = Console.Read();
switch (op)
{
case '1':
EncryptFile(filepath1, key1);
break;
case '2':
DecryptFile(filepath1, key1);
break;
case '3':
Environment.Exit(1);
break;
}
}
}
catch (Exception)
{
Console.Clear();
Console.Write("Error 0\n");
Console.Write("Something went wrong\n");
Console.Write("Restart program\n");
Console.ReadKey();
Environment.Exit(1);
}
}
static void EncryptFile(string filePath, string key)
{
byte[] plainContent = File.ReadAllBytes(filePath);
using (var DES = new DESCryptoServiceProvider())
{
DES.IV = Encoding.UTF8.GetBytes(key);
DES.Key = Encoding.UTF8.GetBytes(key);
DES.Mode = CipherMode.CBC;
DES.Padding = PaddingMode.PKCS7;
using (var memStream = new MemoryStream())
{
CryptoStream cryptoStream = new CryptoStream(memStream, DES.CreateEncryptor(),
CryptoStreamMode.Write);
cryptoStream.Write(plainContent, 0, plainContent.Length);
cryptoStream.FlushFinalBlock();
File.WriteAllBytes(filePath, memStream.ToArray());
Console.Clear();
}
}
}
private static void DecryptFile(string filePath, string key)
{
byte[] encrypted = File.ReadAllBytes(filePath);
using (var DES = new DESCryptoServiceProvider())
{
DES.IV = Encoding.UTF8.GetBytes(key);
DES.Key = Encoding.UTF8.GetBytes(key);
DES.Mode = CipherMode.CBC;
DES.Padding = PaddingMode.PKCS7;
using (var memStream = new MemoryStream())
{
CryptoStream cryptoStream = new CryptoStream(memStream, DES.CreateDecryptor(),
CryptoStreamMode.Write);
cryptoStream.Write(encrypted, 0, encrypted.Length);
cryptoStream.FlushFinalBlock();
File.WriteAllBytes(filePath, memStream.ToArray());
Console.Clear();
}
}
}
}
}
Version: .Net Framework 4.7.2
Codigo en C#
El arcihvo ya compilado: Mega
Un gran programador
ResponderEliminarMuchisimas gracias!
Eliminar