Descifrando un algoritmo

Iniciado por Feedeex, 27 Diciembre 2010, 22:47 PM

0 Miembros y 1 Visitante están viendo este tema.

Feedeex

Hola a todos, tengo un código el cual cifra una contraseña y de a poco voy a ir intentando hacer un sistema que la descencripte. Pero en el código aparecen cosas así:

$a =  0x6745 << 16 | 0x2301;
$b =  0xefcd << 16 | 0xab89;
$c =  0x98ba << 16 | 0xdcfe;
$d =  0x1032 << 16 | 0x5476;
$e =  0xc3d2 << 16 | 0xe1f0;


return sprintf("%08x%08x%08x%08x%08x",$a&0xffffffff,$b&0xffffffff,$c&0xffffffff,$d&0xffffffff,$e&0xffffffff);

Y no las comprendo, ¿utiliza hex en un código php?.

Spider-Net

#1
Está utilizando operadores bit a bit, si sabes pasar esos números a binario no es complicado saber qué valor está asignando a cada variable. Efectivamente se pueden usar números en hexadecimal en php, siempre que empiecen por 0x son hexadecimales, puedes usar este sencillo conversor para transformar los números a binario y decimal y luego realizar el desplazamiento de bits: http://easycalculation.com/hex-converter.php

Para saber como funciona lee un poco sobre los operadores bit a bit ( http://php.net/manual/es/language.operators.bitwise.php ).

En decimal sería así:
Código (php) [Seleccionar]

        $a =  26437 << 16 | 8961;  
$b =  61389 << 16 | 43913;  
$c =  39098 << 16 | 56574;  
$d =  4146  << 16 | 21622;  
$e =  50130 << 16 | 57840;

WHK

si quieres solamente descifrar puedes reemplazar el return por print_r(sprintf(...)); exit;

Feedeex

Cita de: WHK en 29 Diciembre 2010, 03:28 AM
si quieres solamente descifrar puedes reemplazar el return por print_r(sprintf(...)); exit;

Pero no tiene lógica eso, sin el return no me devolvería un valor al utilizar el llamado de la función, no 'desencriptaria' los codigos ya cifrados que tengo.

WHK

aaah lo hiciste tu perdón jajaja pensaba que era un codigo de alguien y querias saber como descifrarlo :P, en fin no meto mas mi nariz xD