Se recomienda revisar Archivos
Encriptar.h
#pragma once
class Encriptar
{
public:
bool registrar(System::String^);
bool logear(System::String^);
private:
System::String^ encriptar(System::String^);
bool repetida(System::String^,int);
};
Encriptar.cpp
#include "StdAfx.h"
#include "Encriptar.h"
#include "stdio.h" //Para archivos
System::String^ Encriptar::encriptar(System::String^ cadena)
{
System::String^ cadenaEncriptada="";
//Eliminar espacios en blanco y repetidas
for(int i=0;i<cadena->Length;i++)
if(cadena[i]!=' ' && !repetida(cadena,i))
cadenaEncriptada+=cadena[i];
return cadenaEncriptada;
}
bool Encriptar::registrar(System::String^ cadenaRegistro)
{
FILE *fichero;
fichero = fopen("D:/ClaveEncriptada.txt","w");//Para escribir y actualizar
cadenaRegistro = encriptar(cadenaRegistro);
//fpuct escribe un caracter en el archivo
for(int i=0;i<cadenaRegistro->Length;i++)
fputc(cadenaRegistro[i],fichero);
if(!fclose(fichero))
return true;
else
return false;
}
bool Encriptar::logear(System::String^ cadenaLogin)
{
FILE *fichero;
fichero = fopen("D:/ClaveEncriptada.txt","r");
cadenaLogin = encriptar(cadenaLogin) + wchar_t(-1);
//Al leer un archivo se lee un caracter extraño, por eso agregamos este a la cadenaLogin para luego
//compararla con cadenaRegistro que es la que se lee del fichero
System::String^ cadenaRegistro = "";
while(!feof(fichero))//feof comprueba si estamos en el final del archivo
cadenaRegistro+=wchar_t(fgetc(fichero));
fclose(fichero);
if(cadenaLogin==cadenaRegistro)
return true;
else
return false;
}
bool Encriptar::repetida(System::String^ cadena,int pose)//Verifica si el caracter actual esta repetido en los caracteres anteriores
{
for(int i=0;i<pose;i++)
if(cadena[pose]==cadena[i])
return true;
return false;
}
Descargar la solución completa de Encriptación
No hay comentarios:
Publicar un comentario