//This program is free software: you can redistribute it and/or modify it under the terms #of the GNU General Public License as published by the Free Software Foundation, either #version 3 of the License, or (at your option) any later version.
//This program is distributed in the hope that it will be useful, but WITHOUT ANY #WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A #PARTICULAR PURPOSE. See the GNU General Public License for more details.
//You should have received a copy of the GNU General Public License along with this #program. If not, see
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "crypt.h"
#include
#include
#include
#include
#include
#include
#include
#include //Librería de manejo de archivos en c++
#include "error.h"
#include "caesar.h"
#include "vigenere.h"
#include "enigma.h"
#include "khufu.h"
#include "lucifer.h"
#include "random.h"
#include "rot13.h"
#include "transpos.h"
#include "blowfish.h"
#include "xor.h"
#include "tinyrsa.h"
#include "otpf.h"
#include "des.h"
#include "des_c.h"
#include "idea.h"
#include
#include "conversor.h"
#include
#include
using namespace std;
char *toHexRepresentation(const char *ba, int length)
{
if(length == 0)
return qstrdup("");
/* We output at maximum about maxLen characters in order to avoid
* running out of memory and flooding things when the byte array
* is large.
*
* maxLen can't be for example 200 because QTestLib is sprinkled with fixed
* size char arrays.
* */
const int maxLen = 50;
const int len = qMin(maxLen, length);
char *result = 0;
if(length > maxLen) {
const int size = len * 3 + 4;
result = new char[size];
char *const forElipsis = result + size - 5;
forElipsis[0] = ' ';
forElipsis[1] = '.';
forElipsis[2] = '.';
forElipsis[3] = '.';
result[size - 1] = '\0';
}
else {
const int size = len * 3;
result = new char[size];
result[size - 1] = '\0';
}
const char toHex[] = "0123456789ABCDEF";
int i = 0;
int o = 0;
while(true) {
const char at = ba[i];
result[o] = toHex[(at >> 4) & 0x0F];
++o;
result[o] = toHex[at & 0x0F];
++i;
++o;
if(i == len)
break;
else {
result[o] = ' ';
++o;
}
}
return result;
}
void MainWindow::imprimirDocumentacion(int modo){
QString absolutePath;
switch(modo){
case 1:
absolutePath = "1.txt";
break;
case 2:
absolutePath = "2.txt";
break;
case 3:
absolutePath = "3.txt";
break;
case 4:
absolutePath = "4.txt";
break;
case 5:
absolutePath = "5.txt";
break;
case 6:
absolutePath = "6.txt";
break;
case 7:
absolutePath = "7.txt";
break;
case 8:
absolutePath = "8.txt";
break;
case 9:
absolutePath = "9.txt";
break;
case 10:
absolutePath = "10.txt";
break;
case 11:
absolutePath = "11.txt";
break;
}
QFile scriptFile(absolutePath);
scriptFile.open(QIODevice::ReadOnly);
ui->descripcion->setText(scriptFile.readAll());
scriptFile.close();
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
algoritmo="";
formatoLlano="ascii";
ui->textoLlanoASCII->setDown(true);
ui->textoLlanoASCII->setChecked(true);
formatoCifrado="ascii";
ui->textoCifradoASCII->setDown(true);
ui->textoCifradoASCII->setChecked(true);
formatoKey="ascii";
ui->textoKeyASCII->setDown(true);
ui->textoKeyASCII->setChecked(true);
ui->panelTextoKey->setDisabled(true);
QImage miImagen("imagen1.png");
ui->imagen->setPixmap(QPixmap::fromImage(miImagen));
ui->imagen->setScaledContents(true);
}
MainWindow::~MainWindow()
{
delete ui;
}
//Probar ahora con mostrar resultados de otro modo
void MainWindow::muestraResultadosCifrados(){
//QString absolutePath = "C:/Users/pilot/Desktop/destino.txt";
QString absolutePath = "destino.txt";
QFile scriptFile(absolutePath);
scriptFile.open(QIODevice::ReadOnly);
ui->panelTextoCifrado->setPlainText(scriptFile.readAll());
scriptFile.close();
}
void MainWindow::muestraResultadosDescifrados(){
//QString absolutePath = "C:/Users/pilot/Desktop/origen.txt";
QString absolutePath = "origen.txt";
QFile scriptFile(absolutePath);
scriptFile.open(QIODevice::ReadOnly);
ui->panelTextoLlano->setPlainText(scriptFile.readAll());
scriptFile.close();
}
/*
void MainWindow::guardaFicheros(int modo){
//0 para guardar llano 1 para guardar cifrado
if(modo!=0 || modo!=1){
ui->consolaMensajes->setPlainText("Error en el MODO.");
}
if(modo==0){
QString absolutePath = "C:/Users/pilot/Desktop/origen.txt";
//QString absolutePath = "origen.txt";
QString absolutePath2 = "C:/Users/pilot/Desktop/origen_key.txt";
//QString absolutePath2 = "origen_key.txt";
QString contenido_llano = ui->panelTextoLlano->toPlainText();
QString contenido_key = ui->panelTextoKey->toPlainText();
QFile file(absolutePath);
if (!file.open(QIODevice::WriteOnly)) {
//QMessageBox::information(this, tr("Unable to open file"),
// file.errorString());
//return;
ui->consolaMensajes->setText("No he podido escribir Llano");
}
QTextStream in(&file);
in << contenido_llano;
file.close();
QFile file2(absolutePath2);
if (!file2.open(QIODevice::WriteOnly)) {
ui->consolaMensajes->setText("No he podido escribir Llano");
}
QTextStream in2(&file2);
in2 << contenido_key;
file2.close();
}
else if(modo==1){
QString absolutePath = "C:/Users/pilot/Desktop/destino.txt";
//QString absolutePath = "destino.txt";
QString absolutePath2 = "C:/Users/pilot/Desktop/origen_key.txt";
//QString absolutePath2 = "origen_key.txt";
QString contenido_cifrado = ui->panelTextoCifrado->toPlainText();
QString contenido_key = ui->panelTextoKey->toPlainText();
QFile file(absolutePath);
if (!file.open(QIODevice::WriteOnly)) {
//QMessageBox::information(this, tr("Unable to open file"),
// file.errorString());
//return;
ui->consolaMensajes->setText("No he podido escribir Cifrado.");
}
QTextStream in(&file);
in << contenido_cifrado;
file.close();
QFile file2(absolutePath2);
if (!file2.open(QIODevice::WriteOnly)) {
ui->consolaMensajes->setText("No he podido escribir Llano");
}
QTextStream in2(&file2);
in2 << contenido_key;
file2.close();
}
}
*/
void MainWindow::guardaFicheros_paraEncriptar(){
//char * origen="C:/Users/pilot/Desktop/origen.txt";
char * origen="origen.txt";
//char *destino="C:/Users/pilot/Desktop/destino.txt";
char *destino="destino.txt";
//char * origen_key="C:/Users/pilot/Desktop/origen_key.txt";
char * origen_key="origen_key.txt";
//Quiero encriptar el texto de panel encriptado. Para lo cual lo guardo en
//un fichero llamado origen.txt y la llave en uno llamado origen_key.txt
ofstream out(origen, ios::out);
if(!out) {
//cout << "Cannot open output file.\n";
ui->consolaMensajes->setText("Error al escribir fichero");
//return 1;
}
else{
string contenido=ui->panelTextoLlano->toPlainText().toStdString();
out << contenido;
out.close();
}
ofstream out2(origen_key, ios::out);
if(!out2) {
//cout << "Cannot open output file.\n";
ui->consolaMensajes->setText("Error al escribir fichero");
//return 1;
}
else{
string contenido=ui->panelTextoKey->toPlainText().toStdString();
out2 << contenido;
out2.close();
}
}
void MainWindow::guardaFicheros_paraDesencriptar(){
//char * origen="C:/Users/pilot/Desktop/origen.txt";
char * origen="origen.txt";
//char *destino="C:/Users/pilot/Desktop/destino.txt";
char *destino="destino.txt";
//char * origen_key="C:/Users/pilot/Desktop/origen_key.txt";
char * origen_key="origen_key.txt";
//Quiero encriptar el texto de panel encriptado. Para lo cual lo guardo en
//un fichero llamado origen.txt y la llave en uno llamado origen_key.txt
ofstream out(destino, ios::out);
if(!out) {
//cout << "Cannot open output file.\n";
ui->consolaMensajes->setText("Error al escribir fichero");
//return 1;
}
else{
string contenido=ui->panelTextoCifrado->toPlainText().toStdString();
out << contenido;
out.close();
}
ofstream out2(origen_key, ios::out);
if(!out2) {
//cout << "Cannot open output file.\n";
ui->consolaMensajes->setText("Error al escribir fichero");
//return 1;
}
else{
string contenido=ui->panelTextoKey->toPlainText().toStdString();
out2 << contenido;
out2.close();
}
}
void MainWindow::guardaFicheroParaEncriptarBlowfish(){
char * origen="C:/Users/pilot/Desktop/origen.txt";
char *destino="C:/Users/pilot/Desktop/destino.txt";
char * origen_key="C:/Users/pilot/Desktop/origen_key.txt";
ofstream out(origen, ios::out);
if(!out) {
//cout << "Cannot open output file.\n";
ui->consolaMensajes->setText("Error al escribir fichero");
//return 1;
}
else{
string contenido=ui->panelTextoLlano->toPlainText().toStdString();
out << contenido;
out.close();
}
}
void MainWindow::on_actionSalir_triggered()
{
this->close();
}
void MainWindow::on_actionAcerca_de_triggered()
{
QString acerca="Escuela Técnica Superior de Ingeniería Informatica y Telecomunicaciónes.\nUniversidad de Granada\nProfesor: Álvaro Antonio Martínez Sevilla \nAutor: Alberto Rodríguez Frías\nalberpilot@gmail.com\n\nEl autor de parte de código fuente de los algoritmos de cifrado simétrico: \nWillis E. Howard\nCurso 2010/2011 Asignatura: Seguridad y Protección de Sistemas Informáticos.\n\n web: http://proyectoteas.blogspot.com";
QMessageBox::about(this, "Acerca de TEAS", acerca);
}
void MainWindow::on_botonEncriptar_clicked()
{
//Variables de control de tiempo de ejecucion del algoritmo
clock_t t_antes,t_despues;
ui->textoLlanoASCII->setDown(true);
ui->textoLlanoASCII->setChecked(true);
ui->textoCifradoASCII->setDown(true);
ui->textoCifradoASCII->setChecked(true);
ui->textoKeyASCII->setDown(true);
ui->textoKeyASCII->setChecked(true);
on_textoLlanoASCII_clicked();
on_textoCifradoASCII_clicked();
on_textoKeyASCII_clicked();
if((ui->panelTextoLlano->toPlainText()).toStdString()==""){
ui->consolaMensajes->setPlainText("No hay texto en el panel de Texto Llano. ");
}
else{
//UBICACION DE ARCHIVOS DE ORIGEN Y DESTINO DE TEXTO. DEBEN ESTAR CREADOS PREVIAMENTE.
//Aunque estén vacios.
//char *origen="C:/Users/pilot/Desktop/origen.txt";
char *origen="origen.txt";
//char *origen_key="C:/Users/pilot/Desktop/origen_key.txt";
char *origen_key="origen_key.txt";
//char *destino="C:/Users/pilot/Desktop/destino.txt";
char *destino="destino.txt";
//if(algoritmo!="blowfish")
// guardaFicheros(0);
guardaFicheros_paraEncriptar();
/******************** SIN ALGORITMO CRIFRAR *****************************************/
//Si no hay algoritmo seleccionado...
if(algoritmo==""){
ui->consolaMensajes->setText("No hay algoritmo seleccionado.");
}
/******************** ALGORITMO CAESAR CIFRAR ****************************************/
else if(algoritmo=="caesar"){
crypt_select_caesar(0);
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resultado= crypt_file_caesar( origen, destino);
t_despues = clock();
//Compruebo que no haya error al cifrar
if(resultado!=0){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}//Fin de opcion Caesar
/******************** ALGORITMO VIGENERE CIFRAR ******************************************/
else if(algoritmo=="vigenere"){
crypt_select_vigenere(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Cifro
t_antes = clock();
int resul_key=crypt_key_vigenere(1, origen_key);
int resultado= crypt_file_vigenere( origen, destino);
crypt_key_erase_vigenere();
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion Vigenere
/******************** ALGORITMO ENIGMA CIFRAR ****************************************/
else if(algoritmo=="enigma"){
crypt_select_enigma(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_enigma(1, origen_key);
int resultado= crypt_file_enigma( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion Enigma
/******************** ALGORITMO KHUFU CIFRAR ****************************************/
else if(algoritmo=="khufu"){
//crypt_key_erase();
crypt_key_erase_khufu();
crypt_select_khufu(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_khufu(1, origen_key);
int resultado= crypt_file_khufu( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion khufu
/******************** ALGORITMO LUCIFER CIFRAR ****************************************/
else if(algoritmo=="lucifer"){
crypt_select_lucifer(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_lucifer(1, origen_key);
int resultado= crypt_file_lucifer( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion lucifer
/******************** ALGORITMO RANDOM CIFRAR ****************************************/
else if(algoritmo=="random"){
//crypt_key_erase();
crypt_key_erase_random();
crypt_select_random(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_random(1, origen_key);
int resultado= crypt_file_random( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion random
/******************** ALGORITMO ROT13 CIFRAR ****************************************/
else if(algoritmo=="rot13"){
crypt_select_rot13(0);
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_rot13(1, origen_key);
int resultado= crypt_file_rot13( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}//Fin de opcion rot13
/******************** ALGORITMO TRANSPOSE CIFRAR ****************************************/
else if(algoritmo=="transpos"){
crypt_select_transpos(0);
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_transpos(1, origen_key);
int resultado= crypt_file_transpos( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}//Fin de opcion rot13
/******************** ALGORITMO BLOWFISH CIFRAR ****************************************/
else if(algoritmo=="blowfish"){
//guardaFicheroParaEncriptarBlowfish();
crypt_select_blowfish(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_blowfish(1, origen_key);
int resultado= crypt_file_blowfish( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion blowfish
/******************** ALGORITMO XOR CIFRAR ****************************************/
else if(algoritmo=="xor"){
crypt_select_xor(0);
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resul_key=crypt_key_xor(1, origen_key);
int resultado= crypt_file_xor( origen, destino);
t_despues = clock();
//Compruebo que no haya error al cifrar
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
//double tiempo2=2.3;
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}//Fin de opcion xor
/******************** ALGORITMO TINYRSA CIFRAR ****************************************/
else if(algoritmo=="tinyrsa"){
crypt_select_tinyrsa(0);
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resul_key=crypt_key_tinyrsa(1, origen_key);
int resultado= crypt_file_tinyrsa( origen, destino);
t_despues = clock();
//Compruebo que no haya error al cifrar
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
//double tiempo2=2.3;
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}//Fin de opcion tinyrsa
/******************** ALGORITMO OTPF CIFRAR ****************************************/
else if(algoritmo=="otpf"){
crypt_select_otpf(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_otpf(1, origen_key);
int resultado= crypt_file_otpf( origen, destino);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion otpf
/******************** ALGORITMO DES CIFRAR ******************************************/
else if(algoritmo=="des"){
crypt_select_des(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Cifro
t_antes = clock();
int resul_key=crypt_key_des(1, origen_key);
int resultado= crypt_file_des( origen, destino);
crypt_key_erase_des();
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion Des
/******************** ALGORITMO DES_C CIFRAR ******************************************/
else if(algoritmo=="des_c"){
crypt_select_des_c(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Cifro
t_antes = clock();
int resul_key=crypt_key_des_c(1, origen_key);
int resultado= crypt_file_des_c( origen, destino);
crypt_key_erase_des();
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion Des_c
/******************** ALGORITMO IDEA CIFRAR ******************************************/
else if(algoritmo=="idea"){
crypt_select_idea(0);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Cifro
t_antes = clock();
int resul_key=crypt_key_idea(1, origen_key);
int resultado= crypt_file_idea( origen, destino);
crypt_key_erase_idea();
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosCifrados();
}
}
}//Fin de opcion Idea
}
}
void MainWindow::on_botonDesencriptar_clicked()
{
clock_t t_antes,t_despues;
ui->textoLlanoASCII->setDown(true);
ui->textoLlanoASCII->setChecked(true);
ui->textoCifradoASCII->setDown(true);
ui->textoCifradoASCII->setChecked(true);
ui->textoKeyASCII->setDown(true);
ui->textoKeyASCII->setChecked(true);
on_textoLlanoASCII_clicked();
on_textoCifradoASCII_clicked();
on_textoKeyASCII_clicked();
if((ui->panelTextoCifrado->toPlainText()).toStdString()==""){
ui->consolaMensajes->setPlainText("No hay texto en el panel de Texto Cifrado. ");
}
else{
//UBICACION DE ARCHIVOS DE ORIGEN Y DESTINO DE TEXTO. DEBEN ESTAR CREADOS PREVIAMENTE.
//Aunque estén vacios.
//char *origen="C:/Users/pilot/Desktop/origen.txt";
char *origen="origen.txt";
//char *origen_key="C:/Users/pilot/Desktop/origen_key.txt";
char *origen_key="origen_key.txt";
//char *destino="C:/Users/pilot/Desktop/destino.txt";
char *destino="destino.txt";
// guardaFicheros(1);//Cambiado
guardaFicheros_paraDesencriptar();
/******************** SIN ALGORITMO DESCIFRAR ****************************************/
//Si no hay algoritmo seleccionado...
if(algoritmo==""){
ui->consolaMensajes->setText("No hay algoritmo seleccionado.");
}
/******************** ALGORITMO CAESAR DESCIFRAR ****************************************/
else if(algoritmo=="caesar"){
crypt_select_caesar(1);
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resultado= crypt_file_caesar( destino, origen);
t_despues = clock();
//Compruebo que no haya error al cifrar
if(resultado!=0){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}//Fin de opcion Caesar
/******************** ALGORITMO VIGENERE DESCIFRAR ****************************************/
else if(algoritmo=="vigenere"){
crypt_select_vigenere(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resul_key=crypt_key_vigenere(1, origen_key);
//crypt_select_caesar( 1 );
int resultado= crypt_file_vigenere( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
//Limpio consola
//ui->lcdNumber->display(tiempo);
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion Vigenere
/******************** ALGORITMO ENIGMA DESCIFRAR ****************************************/
else if(algoritmo=="enigma"){
crypt_select_enigma(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_enigma(1, origen_key);
int resultado= crypt_file_enigma( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion Enigma
/******************** ALGORITMO KHUFU DESCIFRAR ****************************************/
else if(algoritmo=="khufu"){
//crypt_key_erase();
crypt_key_erase_khufu();
crypt_select_khufu(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_khufu(1, origen_key);
int resultado= crypt_file_khufu( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion khufu
/******************** ALGORITMO LUCIFER DESCIFRAR ****************************************/
else if(algoritmo=="lucifer"){
//crypt_key_erase();
crypt_key_erase_lucifer();
crypt_select_lucifer(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_lucifer(1, origen_key);
int resultado= crypt_file_lucifer( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion lucifer
/******************** ALGORITMO RANDOM DESCIFRAR ****************************************/
else if(algoritmo=="random"){
//crypt_key_erase();
crypt_key_erase_random();
crypt_select_random(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_random(1, origen_key);
int resultado= crypt_file_random( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion random
/******************** ALGORITMO ROT13 DESCIFRAR ****************************************/
else if(algoritmo=="rot13"){
crypt_select_rot13(1);
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_rot13(1, origen_key);
int resultado= crypt_file_rot13( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}//Fin de opcion rot13
/******************** ALGORITMO TRANSPOSE DESCIFRAR ****************************************/
else if(algoritmo=="transpos"){
crypt_select_transpos(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_transpos(1, origen_key);
int resultado= crypt_file_transpos( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion transpos
/******************** ALGORITMO BLOWFISH DESCIFRAR ****************************************/
else if(algoritmo=="blowfish"){
crypt_select_blowfish(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_blowfish(1, origen_key);
int resultado= crypt_file_blowfish( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion blowfish
/******************** ALGORITMO XOR DESCIFRAR ****************************************/
else if(algoritmo=="xor"){
crypt_select_xor(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_xor(1, origen_key);
int resultado= crypt_file_xor( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion xor
/******************** ALGORITMO TINYRSA DESCIFRAR ****************************************/
else if(algoritmo=="tinyrsa"){
crypt_select_tinyrsa(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
//Cifro
int resul_key=crypt_key_tinyrsa(1, origen_key);
int resultado= crypt_file_tinyrsa( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion tinyrsa
/******************** ALGORITMO OTPF DESCIFRAR ****************************************/
else if(algoritmo=="otpf"){
crypt_select_otpf(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
t_antes = clock();
int resul_key=crypt_key_otpf(1, origen_key);
//crypt_select_caesar( 1 );
int resultado= crypt_file_otpf( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion otpf
/******************** ALGORITMO DES DESCIFRAR ****************************************/
else if(algoritmo=="des"){
crypt_select_des(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resul_key=crypt_key_des(1, origen_key);
//crypt_select_caesar( 1 );
int resultado= crypt_file_des( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
double tiempo=((t_despues - t_antes)*10);///(CLOCKS_PER_SEC * 10)
ui->lcdNumber->display(tiempo);
//Limpio consola
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion Des
/******************** ALGORITMO DES_C DESCIFRAR ****************************************/
else if(algoritmo=="des_c"){
crypt_select_des_c(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resul_key=crypt_key_des_c(1, origen_key);
//crypt_select_caesar( 1 );
int resultado= crypt_file_des_c( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
//Limpio consola
//ui->lcdNumber->display(tiempo);
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion Des_c
/******************** ALGORITMO IDEA DESCIFRAR ****************************************/
else if(algoritmo=="idea"){
crypt_select_idea(1);
if(ui->panelTextoKey->toPlainText().toStdString()==""){
ui->consolaMensajes->setText("No hay clave");
}
else{
//Limpio La Consola
ui->consolaMensajes->setText("");
//Mido Tiempo: Cojo el tiempo actual
t_antes = clock();
//Cifro
int resul_key=crypt_key_idea(1, origen_key);
//crypt_select_caesar( 1 );
int resultado= crypt_file_idea( destino, origen);
t_despues = clock();
if(resul_key!=0 || resultado!=0 ){ ui->consolaMensajes->setText("Error con los ficheros de Origen y/o Destino."); }
//Si no hay error, pongo las cosas donde deben
else{
//Limpio consola
//ui->lcdNumber->display(tiempo);
ui->consolaMensajes->setText("");
muestraResultadosDescifrados();
}
}
}//Fin de opcion Idea
}//Fin else de si hay texto en la caja
}
void MainWindow::on_comboBoxAlgoritmo_activated(int index)
{
if(index==0){
algoritmo="";
ui->panelTextoKey->setDisabled(true);
ui->lcdNumber->display(0);
}
else if(index==1){
algoritmo="caesar";
ui->panelTextoKey->setDisabled(true);
ui->lcdNumber->display(0);
imprimirDocumentacion(1);ui->consolaMensajes->setText("");
}
else if(index==2){
algoritmo="vigenere";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);
ui->consolaMensajes->setText("ATENCIÓN: La llave no puede contener espacios.");
imprimirDocumentacion(2);
}
/*
else if(index==3){
algoritmo="enigma";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);
}*/
else if(index==5){
imprimirDocumentacion(5);
algoritmo="khufu";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);
ui->consolaMensajes->setText("");
}
else if(index==6){
imprimirDocumentacion(6);
algoritmo="lucifer";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}
else if(index==7){
imprimirDocumentacion(7);
algoritmo="random";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}
else if(index==3){
imprimirDocumentacion(3);
algoritmo="rot13";
ui->panelTextoKey->setDisabled(true);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}/*
else if(index==5){
algoritmo="transpos";
ui->consolaMensajes->setText("ATENCIÓN: La llave esta compuesta de uno o dos numeros.\nEstos deben estar comprendidos entre 2 y 128.");
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);
}*/
else if(index==4){
imprimirDocumentacion(4);
algoritmo="blowfish";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}
else if(index==8){
imprimirDocumentacion(8);
algoritmo="xor";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}/*
else if(index==9){
algoritmo="tinyrsa";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);
}
else if(index==12){
algoritmo="otpf";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);
}*/
else if(index==9){
imprimirDocumentacion(9);
algoritmo="des";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}
else if(index==10){
imprimirDocumentacion(10);
algoritmo="des_c";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}
else if(index==11){
imprimirDocumentacion(11);
algoritmo="idea";
ui->panelTextoKey->setDisabled(false);
ui->lcdNumber->display(0);ui->consolaMensajes->setText("");
}
}
void MainWindow::on_actionLimpiar_triggered()
{
ui->panelTextoCifrado->clear();
ui->panelTextoLlano->clear();
ui->panelTextoKey->clear();
ui->comboBoxAlgoritmo->setCurrentIndex(0);
algoritmo="";
ui->consolaMensajes->clear();
ui->lcdNumber->display(0);
}
void MainWindow::on_textoLlanoHEX_clicked()
{
if(formatoLlano=="ascii"){
const char* hola=(toHexRepresentation ( strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()), ui->panelTextoLlano->toPlainText().toStdString().size() ));
ui->panelTextoLlano->setText(hola);
}
else if(formatoLlano=="bin"){
QString mandar(strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()));
QString binario=BinaryToHex(mandar);
ui->panelTextoLlano->setText(binario);
}
else if(formatoLlano=="hex"){}
formatoLlano="hex";
}
void MainWindow::on_textoLlanoBIN_clicked()
{
if(formatoLlano=="hex"){
QString mandar(strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()));
QString binario=HexToBinary(mandar);
ui->panelTextoLlano->setText(binario);
}
else if(formatoLlano=="ascii"){
//Lo paso a Hexa
const char* hola=(toHexRepresentation ( strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()), ui->panelTextoLlano->toPlainText().toStdString().size() ));
ui->panelTextoLlano->setText(hola);
QString mandar(strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()));
QString binario=HexToBinary(mandar);
ui->panelTextoLlano->setText(binario);
}
else if(formatoLlano=="bin"){}
formatoLlano="bin";
}
void MainWindow::on_textoLlanoASCII_clicked()
{
if(formatoLlano=="hex"){
QString mandar(strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()));
QString binario=HexToAscii(mandar);
ui->panelTextoLlano->setText(binario);
}
if(formatoLlano=="bin"){
QString mandar(strdup(ui->panelTextoLlano->toPlainText().toStdString().c_str()));
QString binario=BinaryToHex(mandar);
QString ascii=HexToAscii(binario);
ui->panelTextoLlano->setText(ascii);
}
if(formatoLlano=="ascii"){
}
formatoLlano="ascii";
}
void MainWindow::on_textoCifradoASCII_clicked()
{
if(formatoCifrado=="hex"){
QString mandar(strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()));
QString binario=HexToAscii(mandar);
ui->panelTextoCifrado->setText(binario);
}
if(formatoCifrado=="bin"){
QString mandar(strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()));
QString binario=BinaryToHex(mandar);
QString ascii=HexToAscii(binario);
ui->panelTextoCifrado->setText(ascii);
}
if(formatoCifrado=="ascii"){
}
formatoCifrado="ascii";
}
void MainWindow::on_textoCifradoBIN_clicked()
{
if(formatoCifrado=="hex"){
QString mandar(strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()));
QString binario=HexToBinary(mandar);
ui->panelTextoCifrado->setText(binario);
}
else if(formatoCifrado=="ascii"){
//Lo paso a Hexa
const char* hola=(toHexRepresentation ( strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()), ui->panelTextoCifrado->toPlainText().toStdString().size() ));
ui->panelTextoCifrado->setText(hola);
QString mandar(strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()));
QString binario=HexToBinary(mandar);
ui->panelTextoCifrado->setText(binario);
}
else if(formatoCifrado=="bin"){}
formatoCifrado="bin";
}
void MainWindow::on_textoCifradoHEX_clicked()
{
if(formatoCifrado=="ascii"){
const char* hola=(toHexRepresentation ( strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()), ui->panelTextoCifrado->toPlainText().toStdString().size() ));
ui->panelTextoCifrado->setText(hola);
}
else if(formatoCifrado=="bin"){
QString mandar(strdup(ui->panelTextoCifrado->toPlainText().toStdString().c_str()));
QString binario=BinaryToHex(mandar);
ui->panelTextoCifrado->setText(binario);
}
else if(formatoCifrado=="hex"){}
formatoCifrado="hex";
}
void MainWindow::on_textoKeyASCII_clicked()
{
if(formatoKey=="hex"){
QString mandar(strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()));
QString binario=HexToAscii(mandar);
ui->panelTextoKey->setText(binario);
}
if(formatoKey=="bin"){
QString mandar(strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()));
QString binario=BinaryToHex(mandar);
QString ascii=HexToAscii(binario);
ui->panelTextoKey->setText(ascii);
}
if(formatoKey=="ascii"){
}
formatoKey="ascii";
}
void MainWindow::on_textoKeyBIN_clicked()
{
if(formatoKey=="hex"){
QString mandar(strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()));
QString binario=HexToBinary(mandar);
ui->panelTextoKey->setText(binario);
}
else if(formatoKey=="ascii"){
//Lo paso a Hexa
const char* hola=(toHexRepresentation ( strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()), ui->panelTextoKey->toPlainText().toStdString().size() ));
ui->panelTextoKey->setText(hola);
QString mandar(strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()));
QString binario=HexToBinary(mandar);
ui->panelTextoKey->setText(binario);
}
else if(formatoKey=="bin"){}
formatoKey="bin";
}
void MainWindow::on_textoKeyHEX_clicked()
{
if(formatoKey=="ascii"){
const char* hola=(toHexRepresentation ( strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()), ui->panelTextoKey->toPlainText().toStdString().size() ));
ui->panelTextoKey->setText(hola);
}
else if(formatoKey=="bin"){
QString mandar(strdup(ui->panelTextoKey->toPlainText().toStdString().c_str()));
QString binario=BinaryToHex(mandar);
ui->panelTextoKey->setText(binario);
}
else if(formatoKey=="hex"){}
formatoKey="hex";
}