Copy Link
Add to Bookmark
Report

eMc2H 5 - Desencriptacion de Base 64

eZine's profile picture
Published in 
eMc2H
 · 29 Apr 2022

Introduccion

Base64 es un codigo de encriptacion que se usa para cifrar contraseñas, por ejemplo en algunas bases de datos, y demas. Este sistema de cifrado es muy sencillo y no hace falta saber mucho sobre el tema para poder descifrar una contraseña en base64.

Sin mas comenzamos como hacerlo.


Valor decimal de cada caracter:

Cada caracter en base64 equivale a un valor decimal. Este valor decimal se saca de la tabla del alfabeto base64:

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

Caracter numerico Valor
0 52
1 53
2 54
3 55
4 56
5 57
6 58
7 59
8 60
9 61

Llegados a este punto comencemos con el ejemplo

Supongamos que nos hemos encontrado con esta contraseña cifrada en base 64... "cGEz3dk" (Sin comillas), y nos ha entrado la tentacion de saber de que se trata. Pues vamos con el primer paso... el valor decimal del caracter en base 64. Sustituimos cada caracter por el valor correspondiente. Para lo cual acudimos a la tabla anterior.

c	28 
G 6
E 5
z 51
3 55
d 29
k 36


De momento es sencillo no???

Pues vamos con el siguiente paso...


Conversion de base64 a binario

Los valores decimales que hemos obtenido hemos de pasarlo a binario.

Como convertir a binario??? Vamos con el ejemplo de antes...

Cojemos el numero 28 (El equivalente del caracter "c" en base64). Y comenzamos a dividirlo entre dos. Despues el resultado de la division se vuelve a dividir entre dos hasta que en el resultado quede "0" o "1".

Veamos...

 28    /2 
0 14 /2
0 7 /2
1 3 /2
1 1


Con esto hemos conseguido obtener el numero binario del valor 56. Donde esta el numero binario??? Pues en los restos de las divisiones: Empezando por el ultimo resultado: "1" y siguiendo en los restos el binario queda asi: "11100".

Este numero binario siempre tiene que ser de 6 digitos, por lo que si alguna vez haceis el binario y os da como resultado un numero con menos de seis digitos... como es en el caso de "28" añadimos tantos ceros como sean necesarios hasta que se completen los 6 digitos. En el ejemplo solo hace falta uno... pues se pone y el binario queda de esta manera: "011100"

Otra forma mas sencilla de calcular los binarios es usando la calculadora que trae windows, por ejemplo. Usandola en modo cientifico, y cambiando los modos... de decimal (Dec) a binario (Bin).


El ejemplo continua y obtenemos los siguientes numeros binarios

28	011100 
6 000110
5 000101
51 110011
28 011100
55 110111
29 011101
36 100100


Conversion de 6 a 8 bits...

El siguiente paso consiste en transformar las cadenas de numeros binarios de 6 bits a 8 bits. Esto consiste que en vez de tener las cadenas 6 digitos, tengan 8.

Para ello ponemos todos los numeros seguidos, pero en orden de aparicion.

 011100000110000101110011011100110111011101100100


Y ahora, por orden, separando de derecha a izquierda, hacemos grupos de numeros de una longitud de 8 digitos (8 bits).

 01110000 01100001 01110011 01110011 01110111 01100100


De nuevo a valor decimal ...

Ahora, con nuestros numeros de 8 bits, los transformamos de nuevo a numeros decimales. Para convertir numeros binarios a decimales, podemos usar de nuevo la calculadora... que es mas sencillo o podemos seguir este metodo:

Multiplicamos cada miembro del numero binario por "2", y ese "2" elevado a la posicion que ocupe el numero que se esta multiplicando. Esto se ve mejor con un ejemplo: Cojemos el primer numero binario que tenemos " 01110000" y le aplicamos el metodo...

0*2^7 + 1*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^0 = 112

Para ver mejor como se ha hecho esto voy a explicarlo un pokillo:

  • El numero es 01110000
  • El primer valor "0" (el de la izquierda) ocupa la posicion 7
  • El ultimo valor "0" (el de la derecha) ocupa la posicion 0

Cada numero ocupa una posicion dentro del numero ...

Cada numero se multiplica por "2", pero ese "2" estara exponenciado (Elevado) a la posicion que ocupe el numero que se esta multiplicando por "2". Asi el primer numero ("0"), que ocupa la posicion "7" esta multiplicado por "2^7" --> Dos elevado a siete.


Estos son los resultado del ejemplo

01110000   112 
01100001 97
01110011 115
01110011 115
01110111 119
01100100 100


De numero decimal a codigo ascii

Este ya es el ultimo paso que hay que dar para finalizar el descifrado de base64. Consiste en convertir el numero decimal obtenido a su valor en la lista de codigo ascii.

Asi el valor 112 equivale a "P" en ascii

 97 "a" 
115 "s"
115 "s"
119 "w"
100 "d"


Con lo que la contraseña encriptada como "cGEz3dk" queda en "Passwd"

Nota: Todo esto diferencia las letras en mayuscula y las letras en minuscula.. con lo que hay que tener especial cuidado con ese tema.


Despedida

Bueno... como habeis podido comprobar, base64 es un codigo bastante facil de desencriptar, encriptar ... y con unas nociones basicas de matematicas se puede llevar a cabo.

Este texto puede ser usado por cualquier persona, pero siempre y cuando no se modifique nada de lo que hay aqui escrito sin consulta previa con el autor.

Espero os haya gustado, como me ha gustado a mi xDD

AmBoLiUs, 2003 para eMc2H magazine.

www.AmBoLiUs.Tk

← 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