Saiyine
Punto Com

Encriptacion de cadenas con XOR

2005-12-29 23:54:00

// EncriptaXOR('esta es la frase de ejemplo','claveXXX')
function EncriptaXOR(cadena,clave : string) : string;
var
i : integer;
begin
        result:='';
        for i:=1 to length(cadena) do
        result:=result+chr(ord(cadena[i]) xor ord(clave[(i mod length(clave))+1]));
end;

La encriptacion con XOR es un clasico entre los clasicos... antes se usaba mucho, por ejemplo, en los virus para hacerlos mas dificiles de encontrar (¿os suena 'virus polimorficos'?). El XOR tiene la propiedad de que si le haces a un numero la operacion XOR dos veces con el mismo numero, obtienes de nuevo el primer numero...

A ver si lo se explicar:

23 xor 6 = 17

17 xor 6 = 23

Por eso no hace falta una rutina desencriptadora, con pasar dos veces la rutina de encriptacion con la misma clave obtienes la cadena original.

cadenaencriptada:=EncriptaXOR('mmm rosquillas','homer');
// mostrara la cadena 'mmm rosquillas'
ShowMessage(EncriptaXOR(cadenaencriptada,'homer'));

Rollos antiguos

0000-00-00 00:00:00 - Puntos de miles en cadenas).

0000-00-00 00:00:00 - Dada una cadena con palabras y separadores, mostrar cada palabra en una linea de un memo.

0000-00-00 00:00:00 - Crear un JPG uniendo varios mas pequeños de igual tamaño uno al lado del otro.

0000-00-00 00:00:00 - Crear un componente en runtime (mientras el programa esta en marcha).

0000-00-00 00:00:00 - Convierte cadenas a numeros, mucho mas robusto que strtoint, convierte correctamente '1.500 pesetas' a 1500.

Saiyine

Selfie of meHi! Welcome to Saiyine Punto Com where I talk about anything that goes through my mind!

Puedo prometer y prometo que a la mayor brevedad aquí irá un menú o algo asín.