Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Alano

[Resolvido] [Código] Criptografia em C++

Recommended Posts

Para aprendizado de Design de Software e Programação em C++, desenvolvi um pequeno código que acredito eu que seja uma criptografia.

 

main.cpp

/*
   * Criado por Bruno Alano Medina.
   * Intuito de Aprendizado e Métodos openSource de Criptografia não
     comercial. Não é recomendado a utilização em projetos que
     usam dados importantes.
   * Na licença de: GNU General Public License, version 3 (GPLv3).
     Você tem direito de:
       - Distribuir, portanto deve manter os créditos dos autores.
       - Modificar, portanto deve manter os créditos dos autores.
     Você não tem direito de:
       - Vender ou utilizar em fins comerciais.
   * http://brunoalano.com.br

   * Criado em PUC / PR.
*/

#include <iostream>
#include "calculator.h"

int main(int argc, char *argv[])
{
   openKey::Calculator first("Bruno Alano", 13);
   int theKey = first.generateKey();
   std::cout << theKey << std::endl;
   return 0;
}

 

calculator.h

/*
   * Criado por Bruno Alano Medina.
   * Intuito de Aprendizado e Métodos openSource de Criptografia não
     comercial. Não é recomendado a utilização em projetos que
     usam dados importantes.
   * Na licença de: GNU General Public License, version 3 (GPLv3).
     Você tem direito de:
       - Distribuir, portanto deve manter os créditos dos autores.
       - Modificar, portanto deve manter os créditos dos autores.
     Você não tem direito de:
       - Vender ou utilizar em fins comerciais.
   * http://brunoalano.com.br

   * Criado em PUC / PR.
*/

#ifndef CALCULATOR_H_INCLUDED
#define CALCULATOR_H_INCLUDED

#include <string>

namespace openKey
{
   class Calculator
   {
       std::string text;
       int layers;
   public:
       Calculator(std::string get_text, int get_layers);
       int generateKey();
   };
}

#endif // CALCULATOR_H_INCLUDED

 

calculator.cpp

/*
   * Criado por Bruno Alano Medina.
   * Intuito de Aprendizado e Métodos openSource de Criptografia não
     comercial. Não é recomendado a utilização em projetos que
     usam dados importantes.
   * Na licença de: GNU General Public License, version 3 (GPLv3).
     Você tem direito de:
       - Distribuir, portanto deve manter os créditos dos autores.
       - Modificar, portanto deve manter os créditos dos autores.
     Você não tem direito de:
       - Vender ou utilizar em fins comerciais.
   * http://brunoalano.com.br

   * Criado em PUC / PR.
*/

#include "calculator.h"
#include <iostream>

openKey::Calculator::Calculator(std::string get_text, int get_layers)
{
   this->text.append(get_text);
   this->layers = get_layers;
}

int openKey::Calculator::generateKey()
{
   /*
       Fórmula:
           ((letra * proxima_Letra) * layers)
   */
   std::string::iterator counter;
   std::string::iterator temp_letter;
   temp_letter = this->text.begin();
   int returnKey;

   for (counter = this->text.begin(); counter < this->text.end(); counter++)
   {
       int temp = (int) *counter;
       // Carregar Letra Seguinte
       temp_letter++;

       // Ultima Letra não é Multiplicada
       if ((int) *temp_letter != 0)
       {
           temp *= (int) *temp_letter;
       }

       // Executa as Camadas
       temp *= this->layers;

       returnKey += temp;
   }

   // Example Return (__REMOVE_THIS)
   return returnKey;
}

 

Por favor, avaliem a organização do código e todo o resto.

Grato, Bruno Alano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.