El agrietamiento de cifrado xor


el código Fuente de ejemplo de cómo romper el cifrado usando Delphi random() de la función y XOR.
[Agrietamiento de Cifrado XOR]
colocar un botón y un cuadro de edición en el formulario, el texto en el cuadro de edición ha de ser de al menos 8 caracteres. si estás utilizando para realmente romper una cadena cifrada, sólo tienes que rellenar buffer [0..7] con cifrado de datos y llenar [0..7] con el texto que asumir es de cifrado (bastante fácil, tu nombre de usuario de algo por el estilo).

me gustaría agradecer a Cheng Wei (en Delphi3000.com) para señalar mi rediculously lento llamadas a Edit1.texto[i]. Me he replanteado el algoritmo, y ahora las pruebas claves como 2 longwords. como resultado de esta revisión, se explora ahora 100.000.000 de teclas en 15seconds en mi duron 600! WAAAHOOOOO! Gracias asignar
Cheng!
procedure TForm1.Button1Click(Sender: TObject)
var i,j:longword
& nbsp & nbsp & nbsp & nbsp thistime,lasttime:longword
& nbsp & nbsp & nbsp & nbsp buffer:array[0..7]of byte
& nbsp & nbsp & nbsp & nbsp b:array[0..1]de larga absoluta buffer[0]
& nbsp & nbsp & nbsp & nbsp texto:array[0..7]of byte
& nbsp & nbsp & nbsp & nbsp p:array[0..1]de larga absoluta texto[0]
& nbsp & nbsp & nbsp & nbsp clave:array[0..7]of byte
& nbsp & nbsp & nbsp & nbsp k:array[0..1]de larga absoluta tecla[0]
begin
& nbsp & nbsp & nbsp lasttime:=gettickcount
& nbsp & nbsp & nbsp randomize
& nbsp & nbsp & nbsp si longitud(edit1.de texto)<8, a continuación, salir
& nbsp & nbsp & nbsp for i:=0 to 7
& nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp texto[i]:=byte(edit1.texto[i 1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp buffer[i]:=texto[i] xor al azar(256) //cifrar
& nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp i:=0
& nbsp & nbsp & nbsp repetir

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp j:=0 a 1000000 //bucle se desenrolla por el compilador
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp randseed:=i
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[0]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[1]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[2]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[3]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[4]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[5]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[6]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[7]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si b[0] xor k[0]=p[0] entonces //clave de prueba en bloques de 4
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si b[1] xor k[1]=p[1]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp thistime:=gettickcount
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp caption:='La clave es:' inttostr(i) ' ('
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inttostr((thistime-lasttime)div 1000) 'seg.)'
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inc(i,1)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp caption:=inttostr(i)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp aplicación.processmessages
& nbsp & nbsp & nbsp hasta que i>palabra larga(MaxInt)
fin









El agrietamiento de cifrado xor


El agrietamiento de cifrado xor : Multi-millones de consejos para hacer su vida mas facil.


el codigo Fuente de ejemplo de como romper el cifrado usando Delphi random() de la funcion y XOR.
[Agrietamiento de Cifrado XOR]
colocar un boton y un cuadro de edicion en el formulario, el texto en el cuadro de edicion ha de ser de al menos 8 caracteres. si estas utilizando para realmente romper una cadena cifrada, solo tienes que rellenar buffer [0..7] con cifrado de datos y llenar [0..7] con el texto que asumir es de cifrado (bastante facil, tu nombre de usuario de algo por el estilo).

me gustaria agradecer a Cheng Wei (en Delphi3000.com) para señalar mi rediculously lento llamadas a Edit1.texto[i]. Me he replanteado el algoritmo, y ahora las pruebas claves como 2 longwords. como resultado de esta revision, se explora ahora 100.000.000 de teclas en 15seconds en mi duron 600! WAAAHOOOOO! Gracias asignar
Cheng!
procedure TForm1.Button1Click(Sender: TObject)
var i,j:longword
& nbsp & nbsp & nbsp & nbsp thistime,lasttime:longword
& nbsp & nbsp & nbsp & nbsp buffer:array[0..7]of byte
& nbsp & nbsp & nbsp & nbsp b:array[0..1]de larga absoluta buffer[0]
& nbsp & nbsp & nbsp & nbsp texto:array[0..7]of byte
& nbsp & nbsp & nbsp & nbsp p:array[0..1]de larga absoluta texto[0]
& nbsp & nbsp & nbsp & nbsp clave:array[0..7]of byte
& nbsp & nbsp & nbsp & nbsp k:array[0..1]de larga absoluta tecla[0]
begin
& nbsp & nbsp & nbsp lasttime:=gettickcount
& nbsp & nbsp & nbsp randomize
& nbsp & nbsp & nbsp si longitud(edit1.de texto)<8, a continuacion, salir
& nbsp & nbsp & nbsp for i:=0 to 7
& nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp texto[i]:=byte(edit1.texto[i 1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp buffer[i]:=texto[i] xor al azar(256) //cifrar
& nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp i:=0
& nbsp & nbsp & nbsp repetir

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp j:=0 a 1000000 //bucle se desenrolla por el compilador
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp randseed:=i
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[0]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[1]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[2]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[3]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[4]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[5]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[6]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp tecla[7]:=aleatorio(256)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si b[0] xor k[0]=p[0] entonces //clave de prueba en bloques de 4
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si b[1] xor k[1]=p[1]
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp thistime:=gettickcount
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp caption:='La clave es:' inttostr(i) ' ('
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inttostr((thistime-lasttime)div 1000) 'seg.)'
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inc(i,1)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp caption:=inttostr(i)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp aplicacion.processmessages
& nbsp & nbsp & nbsp hasta que i>palabra larga(MaxInt)
fin


El agrietamiento de cifrado xor

El agrietamiento de cifrado xor : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación