miércoles, 21 de septiembre de 2011

Encriptación por el Método del César (Mejorado)

Se recomienda revisar Archivos





Encriptar.h

#pragma once

class Encriptar
{
private:
wchar_t abcComun[256], abcNew[256];
bool generarAlfabeto(wchar_t);
int buscarEnAlfabeto(wchar_t[],wchar_t);
public:
System::String^ encriptar(System::String^,wchar_t letra);
System::String^ desencriptar(System::String^,wchar_t letra);
};


Encriptar.cpp


#include "StdAfx.h"
#include "Encriptar.h"

System::String^ Encriptar::encriptar(System::String^ cadena, wchar_t letra)
{
if(generarAlfabeto(letra))
{
System::String^ cadenaEncriptada = "";

for(int i=0;i<cadena->Length;i++)
cadenaEncriptada+=abcNew[buscarEnAlfabeto(abcComun,cadena[i])];

return cadenaEncriptada;
}
else
return "El pivote que ingresó no es válido";
}

System::String^ Encriptar::desencriptar(System::String^ cadena, wchar_t letra)
{
if(generarAlfabeto(letra))
{
System::String^ cadenaDesencriptada = "";

for(int i=0;i<cadena->Length;i++)
cadenaDesencriptada+=abcComun[buscarEnAlfabeto(abcNew,cadena[i])];

return cadenaDesencriptada;
}
else
return "El pivote que ingresó no es válido";
}

bool Encriptar::generarAlfabeto(wchar_t letra)
{
if(int(letra<32))
return false;
else
{
int j = letra;

for(int i=0;i<256;i++)
{
abcComun[i]=wchar_t(i);

if(j==256)
j=0;

abcNew[i]=wchar_t(j);
j++;
}

return true;
}
}

int Encriptar::buscarEnAlfabeto(wchar_t abc[],wchar_t letra)
{
for(int i=0;i<256;i++)
if(abc[i]==int(letra))
return i;
return -1;
}

Descargar la solución completa de Encriptación

No hay comentarios:

Publicar un comentario