Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Código Fonte de um programa de Criptografia que implementa o Algoritmo XOR.

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Código Fonte de um programa de Criptografia que implementa o Algoritmo XOR.

    Criptografia em XOR

    Olá pessoal quero compartilhar com vocês um código fonte de um programa que implemeta o Algoritmo de Criptografia XOR, se gostou agradeça, se foi útil comentem.

    Código:
    #include <iostream>	
    #include <fstream>		
    #include <string>	
    #include <cstdlib>	
    
    using namespace std;
    char xorcrypt(char ch, long key) //Função para retornar um caractere XOR'ed por uma chave longa
    {
    	return ch ^ key;	//retorno ch XOR'ed pela chave
    }
    void error(void) 
    {
    	cout << endl << "Fatal Error, tente uma chave diferente para este arquivo." << endl;
    	exit(EXIT_FAILURE);
    }
    int main(int argc, char *argv[])
    {
    	ifstream inf;	//variável do arquivo de entrada
    	ofstream outf;	//variável do arquivo de saída
    	unsigned loc;	//localização em string utilizada para pesquisa
    	string fn;		//string para arquivo
    	long key;		//armazena a chave para o programa
    	char tmp;		//variável para armazenar caracteres lidos do arquivo de entrada
    	
    	if(argc == 3)	//se dois argumentos de linha de comando foram passados
    	{
    		fn = argv[1];					//analisar o elemento da primeira linha de comando como nome do arquivo original
    		key = strtol(argv[2],NULL,0);	//analisar o elemento da segunda linha de comando como a chave longa	
    		inf.open(fn.c_str());			//arquivo de entrada aberto
    	}
    	else
    	{
    		cout << endl << "Por favor Entre com chave de criptografia: ";	//prompt do usuário para a chave de criptografia
    		cin >> key;											//obter a chave de cin
    	}
    	
    	
    	while(!inf.is_open()) //enquanto um dos arquivos não está devidamente aberto
    	{
    		cout << endl << "Por favor, Digite nome de arquivo válido para xor-Crypt: ";	//prompt do usuário para um nome de arquivo
    		cin >> fn;				//tomar fn_orig de cin
    		inf.open(fn.c_str());	//arquivo de entrada aberto
    	}
    	
    	loc = fn.find(".enc");		//Verificar se o arquivo já contém extensão. enc
    	if(loc != string::npos)		//se o arquivo for encontrado -
    	{
    		fn.replace(loc,4,".orig");	// - substitui último enc com orig..
    	}
    	else
    	{
    		fn += ".enc";				//nome criptografado é o mesmo que o original. enc
    	}
    	outf.open(fn.c_str());			//arquivo de saída aberta
    	
    	while(inf) //enquanto arquivo de entrada não chega EOF
    	{
    		inf.get(tmp); 	//começar o próximo caractere
    		if(inf)			//se o arquivo ainda não estiver em EOF
    		{
    			if(xorcrypt(tmp,key) != EOF)		//enquanto o caractere criptografado pela chave não é ilegal
    			{
    				outf.put(xorcrypt(tmp,key));	//caractere criptografado em arquivo de saída
    			}
    			else
    			{
    				inf.close();		//arquivo de entrada 
    				outf.close();		//arquivo de saída 
    				fn = "del " + fn;	//adiciona "del" para o inicio do nome do aruivo atual
    				system(fn.c_str());	//executa comando delete
    				error(); 			//informar o erro ao sair
    			}
    		}
    	}
    	
    	inf.close();	//arquivo de entrada 
    	outf.close();	//arquivo de saída 
    	
    	return 0;
    }
    Abraços.


    WCG147
    sigpic

  • Font Size
    #2
    uma pergunta ele deixa indetectavel aos ant virus
    ?????

    Comment


    • Font Size
      #3
      hoje em dia não, mas nas antiga dava pra engana sim, inclusive os exploits usavam essa criptografia.

      Comment


      • Font Size
        #4
        Obrigado por compartilhar.

        Não foi útil a min mais quem sabe para outros.

        Comment

        X
        Working...
        X