seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[tutorial] codificar e decodificar base64 manualmente

3 participantes

Ir para baixo  Mensagem [Página 1 de 1]

Kodo no Kami

Kodo no Kami
master
master

e ae galera quem mexe com informatica sempre se depara com texto codificado em base64 alguma vez na vida devido ela ser largamente usado para todos tipos de fins, o base64 em si nao é um criptografia pelo menos muitos nao considera ela sendo uma cripto e sim apenas um encode (no caso ela nao serve para proteger os dados so para evitar trucamento de bytes), o base64 codifica em blocos de texto de 32bits ou seja 4bytes por cada 3 bytes do texto puro entao no caso se tiver um texto por exemplo "kodonokami" ele vai codificar o "kod" gerando um bloco de 32bits depois "ono" outro bloco, "kam" outro, e por fim outro bloco com o "i", totalizando 4 blocos de 32bits cada (a29k b25v a2Ft aQo=), entao kodo como a gente codifica em base64?, entao vamos la para começar a gente separa 3 em 3 bytes para facilitar nosso texto que vamos codificar vai ser fts315 (meu antigo nick XD)

Código:
fts 315

como texto todo separado podemos ir para o proximo passo que seria transformar cada byte em binario (voce pode usar um editor hexadecimal para descobrir seu codigo correspondente depois usar a calculadora do windows para converter de hex para bin)

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

Código:
fts = 66 74 73

convertemos para binario (lembrando que deve ter 8bits entao o 0 a esquerda é importante)

Código:
fts = 01100110 01110100 01110011

juntamos tudo gerando um bloco de 24bits

Código:
011001100111010001110011

separamos 4 blocos com 6 bits cada

Código:
011001 100111 010001 110011

convertemos para decimal

Código:
25 39 17 51

agora vemos o numero equivalente na ordem da tabela

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

no caso o codigo 25 39 17 51 seria equivalente ao caracteres

Código:
ZnRz

no caso esse é os 3 primeiros bytes que é o fts agora fazemos o mesmo esquema para os 3 proximos byte que é o 315 (MzE1)

Código:
fts315 = ZnRzMzE1

conferindo com um programa que codifica arquivo base64 aqui no linux podemos ver que gero o mesmo codigo b64

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

para decodificar fazemos o inverso pegamos 4bytes por vez

Código:
ZnRz

convertemos o caracter para o codigo decimal equivalente na tabela

Código:
25 39 17 51

transformamos em binario (lembrando que sao 6bits nesse caso completamos com 0 a esquerda)

Código:
011001 100111 010001 110011

juntamos tudo gerando 24 bits

Código:
011001100111010001110011

separamos 3 blocos de 8bits

Código:
01100110 01110100 01110011

convertemos para hex para facilitar

Código:
66 74 73

e para terminar usamos um editor hexadecimal para ver qual é o codigo equivalente ^^

Código:
66 74 73 = fts

outra coisa que temos que saber no b64 que se nao tiver 3 bytes e sim apenas 2 ou 1 por exemplo se o texto for "ft" ficaria 1 byte faltando entao completamos os bits restante do bloco com 0 e o byte completo que falta colocamos igual

Código:
ft = 66 74
66 74 = 01100110 01110100
0110011001110100
011001 100111 0100? ? (vish '-')

entao completamos aquele 3byte com 0 e no outro byte fica um =

Código:
011001 100111 010000 =

o codigo base64 nesse caso é

Código:
ZnQ=

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

bom galera essa é a teoria do base64, ate a proxima ^^

by kõdo no kami

https://endoffile.umforum.net

Sir.Rafiki

Sir.Rafiki
avançado
avançado

*---* Grande Fts ;D 0/

Obooka

Obooka
postador
postador

Boa cara,
Parabéns ficou bem ilustrativo...
Vivao ao antigo FTS auhuahuah

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos