Encriptacion de cadenas con XOR

Por Saiyine  el 2005-12-29 23:54:00 - Secciones:  DELPHI  - Enlace permanente: 474

// 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'));
133 
Anonimo (2005-12-28 14:34:00)

a ver..
texto = "casa grande"
length(texto) = "11"

clave = "miclave"
length(clave) = "7"

1 mod 7 = 1
2 mod 7 = 2
3 mod 7 = 3
4 mod 7 = 4
5 mod 7 = 5
6 mod 7 = 6
7 mod 7 = 0 :huh:
8 mod 7 = 1
9 mod 7 = 2
10 mod 7 = 3
11 mod 7 = 4

En delphi si buscamos el valor 0 de un string no nos dara el valor correcto (dado que empieza desde 1 en adelante).;)

La solucion podria ser:
reemplazar:
clave[i mod length(clave)]
por:
clave[i-1 mod length(clave)]+1

En JS se pued implementar como lo hiciste vos, ya que los string empiezan con 0.
Saludos :roll:
PD: muy buena la web!

134 
Saiyine (2005-12-29 23:35:00)

Absolutamente correcto.

Al principio no comprendia porqué hablabas de un mod en vez de xor, pero tienes razón, hay un momento que el mod de la clave devuelve un valor erroneo.

Se corregirá en breve, lo correcto es lo que indica el comentario anterior.

loubens (2007-07-30 05:15:24)

como encriptar y desencriptar con una clave de seguridad.Todo eso se hace en Delphi.

Saludos,

Anonimo (2008-02-15 02:28:18)

oye podrias poner el codigo completo porfa lo que pasa es que estoy iniciando en esto.

gracias

Macchiavello (2008-04-01 02:44:40)

Hola me podeis ayudar quiero encriptar una canion pero no tengo ni idea como se hace me podeis ayudar

Saiyine (2008-04-01 03:25:52)

Mi primera respuesta es que no lo hagas.

Si aun así quieres hacerlo, necesitas que el disco duro o pendrive donde esté la canción esté formateado como NTFS. Despues es simplemente cuestión de botón derecho, propiedades, opciones avanzadas, cifrar.

Tambien puedes usar un programa muy bueno que genera falsos discos duros con clave donde meter tus ficheros y que nadie los pueda ver, se llama Truecrypt.



Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: ¬¬ :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Patrocinadores

Saiyine recommends the easiest way to earn money with your web: get paid just by having some links! Click this button to check it out.

Text Link Ads

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (2080)
  • LimpiaDocus
    LimpiaDocus001.exe  (1798)
  • RCM
    rcm001.zip  (1666)
  • Popmail
    popmail-0.4-psmn.tar.gz  (1716)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (2214)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (1833)
  • Excel Simpsons
    Excel Simpsons  (1872)
  • . . .

    Últimos comentarios

  • 358 - _luuppss: disculpa :) en mi usb se pone...
  • 352 - chucho: Buenas tardes. Podrían ayudarme.? Mi máquina tiene windows XP. Tengo el...
  • 371 - Saiyine: Ya es demasiado tarde, hubiera sido un buen negocio comprar...
  • 707 - EMILIANO: MUY BUEN APORTE!!!!! ME FUNCIONO 10 PUNTOS. GRACIAS
  • 371 - ROSEMARY: hola estube mirando tu pagina y me parece muy interesante...
  • 803 - CAPELU: NADA D LO Q DIGAN LOS QUE NO LA QUIEREN,...
  • . . .

    Recomiendo

  •  Mozilla Firefox 
    DIR (572)
  •  Mozilla Thunderbird 
    DIR (544)
  • KLite 
    klmcodec375.exe (99)
  •  Emule 
    DIR (511)
  •  Knoppix 
    DIR (430)
  •  Knoppix en español (DVD) 
    DIR (771)
  •  Mldonkey 
    DIR (489)
  •  Nucleo linux 
    DIR (490)
  •  Parche linux 
    DIR (490)

    . . .
  • Proyectos online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: Chavalina, Testosterona, Kirai, Wardog y el mundo, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Coding Horror, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (606), cacheando webs
  •  Spam.la  (696), correo de usar y tirar
  •  Mailinator  (687), correo de usar y tirar
  •  Bug me not  (636), absurdos registros di NO
  •  Trashmail  (627), correo de usar y tirar

    . . .
  • Saipuntos

    Jomer: 2
    Yhandros: 1
    Cheimy: 1

    . . .

    Página web ©2001-2008 Saiyine generada en 0.1009s, con 1669914 visitas en total, hoy 646 (de un total de 1209 previstas).

    . . .