Al lío :D
Encriptar:
Código: Seleccionar todo
function EncROTn(Cadena: string; NumRot: integer): string;
var
i: integer;
begin
for i:= 1 to length(Cadena) do
Result:= Result + chr(ord(Cadena[i]) + NumRot mod 256);
end;
Código: Seleccionar todo
function DecROTn(Cadena: string; NumRot: integer): string;
var
i: integer;
begin
for i:= 1 to length(Cadena) do
Result:= Result + chr(ord(Cadena[i]) + (256 - NumRot) mod 256);
end;
Código: Seleccionar todo
Showmessage(EncROTn('putón', 12)); //muestra un msgbox con la string 'putón' encriptada con rot12 = |€ÿz
Showmessage(DecROTn('|€ÿz', 12)); //muestra un msgbox con la string '|€ÿz' desencriptada con rot12 = putón
Ciframos la string "zorrón" con rotn 12, el resultado que nos da es "†{~~", que desencriptado nos da "zorr", en lugar de "zorrón".
Bien, tras hacer pruebas, esta función que hice funciona "a la perfección", no overflows, no errores en caracteres (ni acentos), si veis fallos notificar, por favor.
Créditos: Slek