Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/10/2005, 16:28
DarioDario
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Cita:
Iniciado por robandrox
Hola

Conoces la función md5()??Y la función crypt()??
Te paso un enlace por si te sirve alguna de estas funciones

http://es.php.net/md5
http://es.php.net/manual/es/function.crypt.php

Saludos
Disculpa, pero creo que el no necesita las funciones, mas bien un poco de teoria. Yo busque mucho y encontre siempre muy poco, en realidad nada la unica vez que encontre fue un articulo que de inmediato guarde en un lugar seguro, pero no recuerdo la fuente. Ahora pongo el articulo pero dejo claro que no recuerdo la fuente y de que no me doy ningun tipo de credito, si el autor lee este post y dispone de que no sea publicado aqui, solamente que se comunique con migo y edito el post.

Saludos y Suerte.

Cita:
A menudo es necesario para algunos servidores web poder autenticar usuarios
para permitir el acceso a directorios de archivos. Hay muchas formas de
hacer esto...la mas comun (y menos segura) es una autenticacion basica. La
autenticacion basica utiliza Base64 para codificar el nombre del usuario y
la contraseña de este modo no hay "clear" text contraseñas volando alrededor
de la red durante conexiones FTP.

Cuando ves con un sniffer el nombre del usuario 'Administrator' y su
contraseña 'pass' aparece como 'QWRtaW5pc3RyYXRvcjpwYXNz'. Cuando se
codifican el userID y su contraseña, se utilizan los dos puntos ( ':' sin
comilla para separlos. Entonces:

'QWRtaW5pc3RyYXRvcjpwYXNz'

Se traduce a:

Administrator:pass

Base64 utiliza un subconjunto de 65 caracteres del US-ASCII, permitiendo 6
bits para cada caracter, entonces el caracter 'm' tiene un valor Base64 de
38, y cuando esta representado en forma binaria, es 100110.

Cuando se codifica una secuencia, vamos a decir 'mne' esto es lo que sucede:

La secuencia de texto se cinvierte en su valor US-ASCII (En US-ASCII a cada
caracter se le asigna un valor):

El carácter "m" tiene el valor decimal de 109
El carácter "n" tiene el valor decimal de 110
El carácter "e" tiene el valor decimal de 101

de este modo 'mne' (una secuencia 3 8-bit-bytes) es 109 110 101 en forma
decimal.

Cuando convertimos esta secuencia a Binario nos queda lo siguiente:

01101101 01101110 01100101

Estos 3 8-bit-bytes se concatenan (se juntan) para hacer una cadena de 24
bit:

011011010110111001100101

Esta cadena de 24 bit la dividiremos en 4 secciones de 6 bit:

011011 010110 111001 100101

Ahora tenemos 4 valores. Estos valores binarios, cuando son convertidos al
sistema Decimal obtenemos lo siguiente:

27 22 57 37

Ahora cada caracter del conjunto de Base64 tiene un valor decimal. Ahora
cambiaremos estos valores decimales por los equivalentes en Base64:

27 = b

22 = W

57 = 5

37 = l

De este modo 'mne' cuando es codificado en Base 64 obtenemos 'bW51'.
Debajo esta la tabla del conjunto de caracteres Base64 con sus valores
Decimales:

Tabla 1: Alfabeto Base64


Valor Codif. // Valor Codif. // Valor Codif. // Valor Codificado
0 ---- A // 17 --- R // 34 --- i // 51 --- z
1 ---- B // 18 --- S // 35 --- j // 52 --- 0
2 ---- C // 19 --- T // 36 --- k // 53 --- 1
3 ---- D // 20 --- U // 37 --- l // 54 --- 2
4 ---- E // 21 --- V // 38 --- m // 55 --- 3
5 ---- F // 22 --- W // 39 --- n // 56 --- 4
6 ---- G // 23 --- X // 40 --- o // 57 --- 5
7 ---- H // 24 --- Y // 41 --- p // 58 --- 6
8 ---- I // 25 --- Z // 42 --- q // 59 --- 7
9 ---- J // 26 --- a // 43 --- r // 60 --- 8
10 --- K // 27 --- b // 44 --- s // 61 --- 9
11 --- L // 28 --- c // 45 --- t // 62 --- +
12 --- M // 29 --- d // 46 --- u // 63 --- /
13 --- N // 30 --- e // 47 --- v
14 --- O // 31 --- f // 48 --- w // (pad) --- =
15 --- P // 32 --- g // 49 --- x
16 --- Q // 33 --- h // 50 --- y

Para descifrar una secuencia codificada en Base64 solo debe hacer esto al
reves:

1)Convertir cada caracter a el valor decimal de la tabla Base64.

2)Convertir este valor decimal en binario.

3)Reune los 6 bit binarios de cada caracter en una gran cadena.

4)Separa esta secuencia en grupos de 8 bit (empezando de derecha a
izquierda).

5)Convertir cada valor binario 8-bit en un numero decimal.

6)Convertir este valor decimal en su equivalente US-ASCII.

Listo, ahora todos pueden descifrar una cadena codificada en Base6

Última edición por DarioDario; 23/10/2005 a las 16:39