Foro de elhacker.net

Seguridad Informática => Criptografía => Mensaje iniciado por: final_frontier en 6 Septiembre 2010, 18:55 pm



Título: Dudas con respecto a Base64
Publicado por: final_frontier en 6 Septiembre 2010, 18:55 pm
He estado leyendo el tuto de base64 de aquí
http://foro.elhacker.net/tutoriales_documentacion/base_64-t9039.0.html

que dicho sea de paso es clavado al de wikilearnings xD pero está incompleto (o al menos lo creo así), me han surgido un par de dudas:

1.- ¿Cuando se pone el = en una cadena?

2.- En el ejemplo, se ha utilizado (y en todos los que he visto) una cadena de 3 caracteres, da la casualidad de que cuando la longitud de la cadena que introduces es múltiplo/divisor de 3, a la hora de hacer las cuentas para dividir la gran cadena de números binarios en cadenas de 6 es completamente EXACTA, si por ejemplo son 2 letras la cadena que introduces, a la hora de dividir en las subcadenas de 6 caracteres algún hueco queda por ahí, entonces, se rellena con ceros? por la izquierda o por la derecha?

3.- ¿Qué pasa si la cadena tiene espacios de por medio?


Título: Re: Dudas con respecto a Base64
Publicado por: APOKLIPTICO en 7 Septiembre 2010, 23:37 pm
Te dejo este link con buena info: http://en.wikipedia.org/wiki/Base64 (http://en.wikipedia.org/wiki/Base64)

1)El "=" se utiliza como padding, osea, para rellenar cuando no es exacto. Siendo que es base 64, cada 3 bytes de input, salen 4 bytes de output. Si son menos de 3 bytes, se rellenan los bytes restantes con "=".

Cito:
Citar
Input ends with: sure.  Output ends with: c3VyZS4=
Input ends with: sure   Output ends with: c3VyZQ==
Input ends with: sur    Output ends with: c3Vy
Input ends with: su     Output ends with: c3U=

2) Bueno, esto te lo respondí en la 1.

3) Los espacios, son caracteres también en el código ASCII (" " = 32 Ascii). Ergo, se convierten a base 64 tmb. Por ejemplo "   " (tres espacios) se convierten en "ICAg".

Lo bueno del base64, es que sirve para convertir cadenas no legibles en legibles.