Pular para o conteúdo principal

Criptografar arquivo txt C#


Segue exemplo de como encriptar e descriptar um texto utilizando TripleDES no C#.

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

class TripleDESSample
{

    static void Main()
    {
        try
        {            
            //Cria um novo objeto TripleDES para gerar a chave e o vetor de inicialização.
            TripleDES TripleDESalg = TripleDES.Create();

//cria o texto para encriptar            
            string sData = "Dados para encriptar.";
            string FileName = "fileEncript.txt";

            // Encripta o texto e grava em um arquivo.
            EncryptTextToFile(sData, FileName, TripleDESalg.Key, TripleDESalg.IV);

            // Decripta o texto do arquivo.
            string Final = DecryptTextFromFile(FileName, TripleDESalg.Key, TripleDESalg.IV);

            // exibe a string decriptada na janela console.
            Console.WriteLine(Final);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }

    }

    public static void EncryptTextToFile(String Data, String FileName, byte[] Key, byte[] IV)
    {
        try
        {
            // cria ou abre o arquivo.
            FileStream fStream = File.Open(FileName,FileMode.OpenOrCreate);

            // cria o objeto TripleDES.
            TripleDES tripleDESalg = TripleDES.Create();

            // Cria o CryptoStream usando o FileStream 
            // e passa a key e o IV.
            CryptoStream cStream = new CryptoStream(fStream, 
                tripleDESalg.CreateEncryptor(Key,IV), 
                CryptoStreamMode.Write); 

            // Cria um StreamWriter usando o CryptoStream.
            StreamWriter sWriter = new StreamWriter(cStream);

            // Escreve os dados encriptado no arquivo.
            sWriter.WriteLine(Data);

            // Fecha os streams.
            sWriter.Close();
            cStream.Close();
            //Fecha o arquivo.
            fStream.Close();
        }
        catch(CryptographicException e)
        {
            Console.WriteLine("Erro na Criptografia: {0}", e.Message);
        }
        catch(UnauthorizedAccessException  e)
        {
            Console.WriteLine("Erro no acesso ao arquivo: {0}", e.Message);
        }

    }

    public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] IV)
    {
        try
        {
            // cria ou abre o arquivo encriptado. 
            FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);

            // Cria o objeto TripleDES.
            TripleDES tripleDESalg = TripleDES.Create();
            
            CryptoStream cStream = new CryptoStream(fStream, 
                tripleDESalg.CreateDecryptor(Key,IV), 
                CryptoStreamMode.Read); 

            // Cria o StreamReader usando o CryptoStream.
            StreamReader sReader = new StreamReader(cStream);

            // Ler os dados do stream decryptado. 
            string val = sReader.ReadLine();

            // fecha os streams            
            sReader.Close();
            cStream.Close();
            //fecha o arquivo
            fStream.Close();

            // retorna o texto. 
            return val;
        }
        catch(CryptographicException e)
        {
            Console.WriteLine("Erro na Criptografia: {0}", e.Message);
            return null;
        }
        catch(UnauthorizedAccessException  e)
        {
            Console.WriteLine("Erro no acesso ao arquivo: {0}", e.Message);
            return null;
        }
    }
}

Comentários

Postagens mais visitadas deste blog

EmguCV DLL Not Found Exception -Unable to find cvextern?

Eu também tive os mesmos problemas. Neste fórum emgucv , não sei por que cvextern.dlldo emgucv 3.4.3 não é possível carregar cvextern (porque não é possível encontrar cvextern), e você permitiu usar o arquivo cvextern.dlldo emgucv 3.4.2 (certifique-se de escolher x64 / x86), copie /bin/Debuge este arquivo é encontrado automaticamente /bin/Debug/x86ou /bin/Debug/x64quando você termina de construir o programa no Visual Studio.  O Erro:  The type initializer for 'Emgu.CV.CvInvoke' threw an exception. : Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)  Para resolver o problema copia a pasta x64 ou x86 para dentro da pasta bin da aplicação. Ou copie os arquivos para dentro da pasta bin da aplicação WCF.

Vagas .Net - Projeto CNSA

Prezados, Estamos selecionando candidados, em forma de cadastro de reserva, para participar do projeto: Cadastro Nacional de Sociedade de Advogados, na Assessoria de Tecnologia da Informação do Conselho Federal da OAB. Basicamente teremos 3 fases: * Avaliação Curricular; * Entrevista Pessoal; * Verificação prática; Outras informações: Vaga: Desenvolvedor .NET. Quantidade: 3. Tempo: 4 meses. Segue abaixo os requisitos que devem ser atendidos pelo candidato: Conhecimentos básicos * Conhecimento avançado em C#; * Conhecimento em ASP.NET 2.0; * ADO.NET 2.0; * SQL SERVER 2005 (DML, stored procedures, MER); * UML (Interpretação de casos de uso, diagrama de atividades, de classe, de sequência); * Experiência em projetos anteriores com ASP.NET e C#; Desejável * LINQ TO SQL; * Conhecimento em JavaScript e padrões Web (XHTML, CSS, etc); * ASP.NET 3.5; * C# 3.0 (LINQ, Propriedade implementadas automaticamente, Métodos de Extensão, Expressão Lamb...

Lista de IPs DNS Oi nos Estados

As vezes quando colocamos um IP fixo para uma máquina na rede, e esta rede tem acesso a internet através da rede da Oi, bem provável que você não conseguirá acessar a internet. Para resolver o problema defina o DNS primário e Secundário nas propriedades da placa de rede. - Protocolo TCP/IP Versão 4 (TCP/IPv4). Segue lista de DNS por estado. RS 201.10.1.2 201.10.120.3 SC 201.10.120.3 201.10.1.2 PR 201.10.120.2 201.10.128.3 GO 201.10.128.3 201.10.120.3 DF 201.10.128.2 201.10.120.2 MS 201.10.128.3 201.10.1.2 MT 201.10.128.2 201.10.120.3 RO/AC 201.10.128.2 201.10.1.2