Ver Mensaje Individual
  #30  
Antiguo 15-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Como veo que la cosa ya no interesa mucho, pongo el algoritmo de cifrado.

Código Delphi [-]
function Descifrar(Str, Clave: String): string;
var
  i,j,k: integer;
begin
  Result:= '';
  j:= Length(Clave);
  for i:= 1 to Length(Str) do
  begin
    if Str[i] in ['A'..'Z'] then
    begin
      j:= (j mod Length(Clave)) + 1;
      k:= Ord(Str[i]) - Ord(Clave[j]) + Ord('0');
      if k < Ord('A') then
        k:= Ord('Z') - Ord('A') + k + 1;
      Result:= Result + Chr(k);
    end else
      Result:= Result + Str[i];
  end;
end;

function Cifrar(Str, Clave: String): string;
var
  i,j,k: integer;
begin
  Result:= '';
  j:= Length(Clave);
  for i:= 1 to Length(Str) do
  begin
    if Str[i] in ['A'..'Z'] then
    begin
      j:= (j mod Length(Clave)) + 1;
      k:= Ord(Str[i]) + Ord(Clave[j]) - Ord('0');
      if k > Ord('Z') then
        k:= Ord('A') - Ord('Z') + k - 1;
      Result:= Result + Chr(k);
    end else
      Result:= Result + Str[i];
  end;
end;

Por ejemplo para descifrar el mensaje:
Código Delphi [-]
ShowMessage(Descifrar('XLD Z QH FCSALFFK GG LYDPTZ GG YYLIT LQ NF BOVNTD EFZLNQH GGQ ADDQLUQ','5732'));
Responder Con Cita