View text
| Info | |
|---|---|
| Author | n3bula |
| Date added | 2002-08-29 |
| Last modified | 2006-03-03 |
Base64 decoderen
Base64 decrypten
In deze tekst zal ik het ff hebben over hoe een base64 encryptie in elkaar zit en hoe je deze natuurlijk
ook kan decrypten.
De benodigdheden die je nodig hebt zijn:
- ASCII tabel ( een goeie staat op http://www.asciitable.com/)
- wat kennis over het binairstelsel
- Een Base64 Alphabet (deze is hier mee geleverd)
We gaan nu es tonen hoe je een Base64 encryptie kan kraken. We nemen als geencrypt paswoord:"UG9lcHNla3Mh=="
Die '==' wijst er op dat het een Base64 encryptie is. Dat wil zeggen dat we dus juist bezig zijn ;P. Het
eerste wat we nu zullen nodig hebben is het Base64 Alphabet (zie hier onder). We gaan dus nu die letters
en cijfers van het geëncrypt paswoor om zetten naar getallen die we dan naar 6-bit gaan omzetten.
Dus zo als je hier onder kan zien U==20; G==6; 9==61; enz.
Base64 Alphabet
|-------|---------||-------|---------||-------|---------||-------|---------|
|waarde |Encoding ||waarde |Encoding ||waarde |Encoding ||waarde |Encoding |
|-------|---------||-------|---------||-------|---------||-------|---------|
| 0 | A || 16 | Q || 32 | g || 48 | w |
| 1 | B || 17 | R || 33 | h || 49 | x |
| 2 | C || 18 | S || 34 | i || 50 | y |
| 3 | D || 19 | T || 35 | j || 51 | z |
| 4 | E || 20 | U || 36 | k || 52 | 0 |
| 5 | F || 21 | V || 37 | l || 53 | 1 |
| 6 | G || 22 | W || 38 | m || 54 | 2 |
| 7 | H || 23 | X || 39 | n || 55 | 3 |
| 8 | I || 24 | Y || 40 | o || 56 | 4 |
| 9 | J || 25 | Z || 41 | p || 57 | 5 |
| 10 | K || 26 | a || 42 | q || 58 | 6 |
| 11 | L || 27 | b || 43 | r || 59 | 7 |
| 12 | M || 28 | c || 44 | s || 60 | 8 |
| 13 | N || 29 | d || 45 | t || 61 | 9 |
| 14 | O || 30 | e || 46 | u || 62 | + |
| 15 | P || 31 | f || 47 | v || 63 | / |
|-------|---------||-------|---------||-------|---------||-------|---------|
Dan bekom je een getallen reeks van:
20 6 61 37 28 7 13 37 26 55 12 33
deze moeten we nu naar het binaire omzetten van 6-bit
Het binair stelsel van 6 gaat als volgt:
32 16 8 4 2 1
dus het getal 20 is binaire 0101000
Als je niet weet hoe je dit doet leg ik het hier onder ff uit als je het wel weet mag je dit overslaan.
bv. Je wil het getal 0101000 en je wil het als een gewoon getal hebbendan kan je dit als volgt doen:
je plaatst eerst je getal en er boven zet je die waarden dat je allemaal in het binair stelsel hebt:
32 16 8 4 2 1
0 1 0 1 0 0 --> hier zie je dat er een 1 onder de 16 en de 4 staat. Dus nu tel je die 2 getallen op
en je ziet dat je 20 uitkomt.
dan bekom je een hele hoop benaire getallen. Het makkelijkst is dat je ze nu allemaal naast elkaar gaat
plaatsen in groepjes van 4. Is dan makkelijker om het naar 8-bit of (1byte) om te zetten.
010100 000110 111101 100101
011100 000111 001101 100101
011010 110111 001100 100001
dus nu gaan we van een 6-bit een 8-bit maken. Dit doen we door de getallen samen te nemen tot je er 8 hebt
dit krijg je dan als resultaat.
01010000 01101111 01100101
01110000 01110011 01100101
01101011 01110011 00100001
Nu moeten we nog deze bytes weer om zetten tot gewone getallen en dan in de ASCII tabel gaan omzetten in
gewone karakters. Om de getallen van een byte om tezetten is een beetje zoals bij een 6-bit enkel dat
je nu meer waarden hebt die zijn:
128 64 32 16 8 4 2 1
Als je dit doet krijg je de getallen:
80 111 101 112 115 101 107 115 33
Als je dit dan omzet met de ASCII tabel in gewone karakters kun je lezen dat het paswoord: "Poepseks!" is
Ik hoop dat je nu wat beter verstaat hoe een Base64 incryptie in elkaar zit. Er zijn ook makkelijkere en
vluggere manieren om een Base64 encryptie te decoden in php heb je daar een funcitie voor "decode_base64()"
Deze tuto mag zo veel je wil gekopieerd worden. Maar mijn naam moet er altijd onderblijven! Als je deze
tuto op je eigensite zetten geleven eerst met me contact op te nemen met me dus als je het op je site wil
zetten of nog vragen hebt via mail: n3bula AT r00tweb DOT com of n3bula AT Alphar00tz DOT tk of op irc AT r00tweb DOT com op
de channels #Alphar00tz of #r00tweb.