Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Antruck1821

#1
Foro Libre / Wooh, Profesor maltrata niños
13 Agosto 2011, 19:21 PM
El Video habla por si solo
[youtube=425,350]http://www.youtube.com/watch?v=c-4VeLfgZ_w[/youtube]

Es tan degraciadito el tipo que ni siquiera mira la tarea bien y ya le esta dando golpes, Yo siendo el padre de alguno de esto carajos, bueno aya es legal entrarle granada por detrás a tipos como esto.

Aunque este si me gusto:
[youtube=425,350]http://www.youtube.com/watch?v=PvKZbV5gAbs&feature=related[/youtube]

Aunque sea mujer pero lo golpe que le doy en el infierno no me aceptan:
[youtube=425,350]http://www.youtube.com/watch?v=9OVB9UBHqO4&feature=related[/youtube]
#2
Saludo, soy nuevo en el foro  :rolleyes:

Estaba buscando algo para cifrar en base64 en c++, encontré esto pero meda problema en #include "base64.hpp" Como soluciono el problema, trato de buscar en google pero nada o por lo menos no  ami, Compilador GCC, IDE CodeBlock.

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <math.h>
#include <cstdio>
#include <cstdlib>

using namespace std;

class Base64
{
private:
  static string alfabeto;
  static string TextToBinBase(string a, int b);
  static void Reverse(string &a);
  static void Complete(string &a, int b);
public:
  static string Encode(string a);
  static string Decode(string a);
  static string Binary(int a, int b);
  static int BinToInt(string a);
  static string TextToBin(string a, int b);

};

Base64.cpp
Citar
#include "Base64.hpp"
#include <sstream>

using namespace std;

string Base64::alfabeto = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

string Base64::Binary(int a, int b)
{
  string result = "";
  while(a != 0)
  {
     if((a%2) == 0)
        result += '0';
     else
        result += '1';
     a = a/2;
  }

  Complete(result, b);
  Reverse(result);
  return result;
}

string Base64::Encode(string a)
{
  string binario = TextToBin(a, 8);
  stringstream ret;
  string *buffer;

  int padding;
  int alt = binario.length()%6;
  int aux;

  if(alt == 0)
  {
     int numcadenas = binario.length() / 6;
     buffer = new string[numcadenas];
     if(buffer != NULL)
     {
        for(int i = 0; i < numcadenas; i++)
        {
           buffer[ i ] = binario.substr(i*6, 6);
           aux = BinToInt(buffer[ i ]);
           ret << alfabeto.at(aux);
        }

        delete[] buffer;
     }
  }
  else
  {
     padding = (6 - alt) / 2;
     Complete(binario, binario.length() + (6-alt));
     int numcadenas = binario.length() / 6;
     buffer = new string[numcadenas];
     if(buffer != NULL)
     {
        int i;
        for(i = 0; i < numcadenas; i++)
        {
           buffer[ i ] = binario.substr(i*6, 6);
           aux = BinToInt(buffer[ i ]);
           ret << alfabeto.at(aux);
        }

        for(i = 0; i < padding; i++)
           ret<<"=";

        delete[] buffer;
     }
  }

  return ret.str();
}

string Base64::Decode(string a)
{
  string binario;
  string cadena;
  stringstream delpadding;

  int i;

  for(i = 0; i < a.length(); i++)
  {
     if(a.at(i) != '=')
        delpadding<<a.at(i);
  }

  cadena = delpadding.str();
  binario = TextToBinBase(cadena, 6);

  stringstream ret;
  string *buffer;

  int padding;
  int alt = binario.length()/8;
  int aux;

  buffer = new string[alt];

  if(buffer != NULL)
  {
     for(i = 0; i < alt; i++)
     {
        buffer[ i ] = binario.substr(i*8, 8);
        aux = BinToInt(buffer[ i ]);
        ret << (char)aux;
     }
     cout<<endl;
     delete[] buffer;
  }

  return ret.str();
}

string Base64::TextToBin(string a, int b)
{
  stringstream c;
  for(int i = 0; i < a.length(); i++)
  {
     c<<Binary((int)a.at(i), b);
  }
  return c.str();
}

string Base64::TextToBinBase(string a, int b)
{
  stringstream c;
  for(int i = 0; i < a.length(); i++)
  {
     int pos = (int)alfabeto.find(a.at(i));
     c<<Binary(pos, b);
  }
  return c.str();
}

void Base64::Reverse(string& a)
{
  string aux = "";
  for(int i = 0; i < a.length(); i++)
     aux += a.at(a.length() - i - 1);
  a = aux;
}

void Base64::Complete(string &a, int b)
{
  if(a.length() < b)
  {
     int fin = b - a.length();
     a.append(fin, '0');
  }
}

int Base64::BinToInt(string a)
{
  int aux = 0;

  for(int i = 0; i < a.length(); i++)
  {
     if(a.at(i) == '1')
     {
        float ex = a.length() -i -1;
        aux += (int)pow(2, ex);
     }
  }

  return aux;
}

Main.cpp
Citar
#include "Base64.hpp"

/*
Compilación utilizando g++:
g++ Main.cpp Base64.cpp -o base64

Uso:
base64 -flag string
Ej:
  base64 -c hola

Flags disponibles:

-c : cifra
-d : descifra

Se pueden cifrar cadenas más grandes a una sola palabra si se coloca todo entre comillas dobles
Ej:
  base64 -c "cifrando textos con espacios"
*/

using namespace std;

void usage()
{
  cout<<"Usage: "<<endl;
  cout<<"base64 -c string || Crypt a string to a Base64 string"<<endl;
  cout<<"base64 -d string || Decrypt a Base64 string"<<endl;
}

int main(int argv, char** args)
{
  if(argv != 3)
  {
     usage();
  }
  else
  {
     string op, str;
     op = args[1];
     str = args[2];

     if(op == "-d")
     {
        cout<<Base64::Decode(str)<<endl;
     }
     if(op == "-c")
     {
        cout<<Base64::Encode(str)<<endl;
     }
     if( (op != "-c") && (op != "-d"))
     {
        usage();
     }
  }
  return 0;
}