Copy Link
Add to Bookmark
Report

5 Descifrando secuencias codificadas en Base64

eZine's profile picture
Published in 
FIH EziNe
 · 1 year ago

|-----------------------------------------------------------------------------------------------| 
| Descifrando secuencias codificadas en Base64 |
|-----------------------------------------------------------------------------------------------|
| 09-01-2003 | | XyborG |
|-----------------------------------------------------------------------------------------------|
| _____ ___ _ _ _____ _ |
| | ___|_ _| | | | | ____|___(_)_ __ ___ |
| | |_ | || |_| | | _| |_ / | '_ \ / _ \ |
| | _| | || _ | | |___ / /| | | | | __/ |
| |_| |___|_| |_| |_____/___|_|_| |_|\___| |
| xyborg@bigfoot.com |
| [ Traduccion al Español por XyborG ]|
|-----------------------------------------------------------------------------------------------|

Introduccion

Esta es una traduccion del texto en Ingles, que pueden encontrar en la siguiente URL:

http://www.rzweb.com.ar/files/txt/textos/base64.htm

Me dejo de vueltas y empiezo con el texto :o)

-------------

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 Base64 :o)

------------

Bueno espero que les sea util esta traduccion, si les parece que hace falta alguna correccion, o tienen alguna duda, solo consulten, no molestan :o)

------------------------
By XyborG
xyborg@bigfoot.com
http://www.rzweb.com.ar
------------------------

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT