Hola, comparto con vosotros este cifrado hecho en Delphi, está basado en el que Slek realizó en su día.

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;
Desencriptar:

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;
Tiene las letras gordas, pero ahí va un ejemplo de cada una:

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
Me decidí a hacerlo porque la de Slek posee algún tipo de error que no entiendo, por ejemplo:

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
UDTools.net
GitHub: https://github.com/MetalUDT
Yo no se nada de delphi y poco de vb6 xD , pero esto esta muy bien que hallas solucionado los bugs y todo, buen aporte.
Imagen


Nada temo, pues mantengo la verdad que es poderosa.
Responder

Volver a “Fuentes”