Miér Jun 08, 2011 1:23 pm
- Código:
Function Beaufort (A : String; B : String) : String;
{'==============================================================='}
{' AX: Cifrado Beaufort '}
{' Uso: Beaufort('Texto', 'clave') '}
{' Dedicado a Corp-51 '}
{'==============================================================='}
Var D : String;
Var E : String;
Var F : LongInt;
Var G : Integer;
Var H : Integer;
Var I : String;
Begin
If Length(A) = 0 Then Exit;
If Length(B) = 0 Then Exit;
D := Trim(StringReplace(UpperCase(A), ' ', '', [rfReplaceAll]));
E := Trim(StringReplace(UpperCase(B), ' ', '', [rfReplaceAll]));
If Length(E) < Length(D) Then Begin
For F := 1 To Length(D) - Length(E) Do E := E + Copy(E, F, 1);
end;
For F := 1 To Length(D) Do Begin
G := Ord(Copy(D, F, 1)[1]);
H := Ord(Copy(E, F, 1)[1]);
If (H - G) = Abs(H - G) Then I := I + Chr((H - G) + 65) Else I := I + Chr(27 - Abs(H - G) + 65);
end;
Beaufort := I;
end;
Hola a todos...Esta es la función Beaufort (Cifrado Beaufort), que es muy parecido a Vigenère. Su utilización es muy sencilla y cualquier duda coménten!
Saludos.