Este programa codifica con un método muy sencillo, y poco eficaz si la clave de codificación es corta, pero muy eficaz si es larga y se utilizan varias claves(intentare colgar otro programa que use varias claves). El programa, codifica un fichero de texto (extensión .txt) y el texto codificado lo guarda en un fichero que crea y se llama codificado.txt. Groso modo, el mecanismo consiste en sumar el valor de la letra a codificar y el de la letra que corresponda de la clave, usando valores del codigo ASCII. El programa resultante es el siguiente:
program encripta(input,output);
const
min=32;
max=126;
type
NomFich=string[50];
tpContador=1..maxint;
var
nom:NomFich;
codificado,decodificado:text;
aux:char;
contador:integer;
procedure Codificar(VAR a:char; c:tpContador);
const
clave='AquiSeIntroduceLaClave';{Aqui se pone el texto a usar como clave}
var
n:integer;
begin {mirando en las tablas del codigo ASCII}
if (ord(a)>=min) and (ord(a)<=max) then begin
n:=((c-1) mod ord(clave[0])) + 1;
{En la posicion 0 de la cadena clave se guarda su longitud}
n:=(ord(clave[n])+ord(a)-(min*2)) mod (max-min+1);
n:=n+min;
a:=chr(n)
end
end;
begin
write('Introduzca el nombre del fichero de texto a decodificar: ');{Se debe poner la extensión .txt}
readln(nom);
assign(decodificado,nom);
assign(codificado,'codificado.txt');
reset(decodificado); rewrite(codificado);
contador:=0;
while not eof(decodificado) do begin
while not eoln(decodificado) do
begin
contador:=contador+1;
read(decodificado,aux);
Codificar(aux,contador);
write(codificado,aux)
end;
readln(decodificado);writeln(codificado)
end;
close(codificado); close(decodificado);
readln
end.
Si alguien tiene alguna duda o quiere detalles sobre el método que pregunte por aquí.
Salud.
Resolución de distintos problemas en el ámbito de la ingenieria mediante el uso de la programación. Los programas abarcan todos los niveles de dificultad, así como la mayoría de las herramintas con las que contamos al programar. Si tienes cualquier duda a cerca de un programa, o quieres proponer alguna nueva entrada, no dudes en contactar escribiendo en cualquiera de las entradas del blog ¡Bienvenido!
viernes, 24 de febrero de 2012
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario