Base64 kodlaması nedir ve nasıl çalışır?

Trsz_kwT

Özel Üye
Katılım
2 Ara 2017
Mesajlar
467
Tepkime puanı
0
Puanları
0




[size=medium]Base64 , HTTP ve uzantıları gibi güvenli veri aktarımında kullanılan bir veri kodlama şemasıdır. Base64 kodlaması, keyfi bayt grubunu okunabilir ASCII karakter dizisine dönüştürür. Bu dönüştürülmüş karakterler, HTTP üstbilgisini işlerken bir soruna neden olmaksızın bir HTTP üstbilgisine güvenle koyulabilirler. HTML kodlarına, src, url attriblerine eklenebilirler.[/size]

Aslında Base64 kodlaması, MIME içerik ddddddkodlamasının parçası olarak icat edilmiştir. 
[size=medium]Uluencode
http://webcache.googleusercontent.com/search?q=cache:https://en.wikipedia.org/wiki/Uuencoding ve BinHex gibi diğer kodlama şemalarına benzer, ancak daha yüksek verimlilik.
[/size]





[font=Oswald, sans-serif]8 bit - 6 bit[/font]



Base64 baytları 6 bitlik gruplara bölecektir. Her 6 bit, bir karaktere denk gelir. Bu karakterler, Base64 karakter tablosundaki 64 karakterden biri olacaktır. Bu 64 karakter yaygın ve bir HTTP başlığına güvenle koyulabilir. Bu karakterler arasında [a-z], [A-Z], [0-9], [+, /] ve özel amaç karakteri = (65. karakter), [Alt + 65] bulunur .




ff848710.Base64_Mapping(en-us,MSDN_.10)_.png




Base64, 6 bitlik veriyi temsil etmek için bir karakter kullanacağından, Base64 ile kodlanan veri boyutu orijinal veriden% 33 daha büyük olacaktır.

Aşağıda Base64'un nasıl çalıştığının basit bir örneği verilmiştir. 


Altı karakter "Selam!" olduğunu varsayalım. Bu kelimeyi Base64 kodlayalım:.


  1. Selam! Karakterleri Altı 8 bit bayt'a (0x4F, 0x77, 0x21) dönüştürülecektir.
    (Dönüşümü sizde Online String Hex Converter sitesiyle yapıp her iki karakterinin başına 0x ekleyerek deneyebilirsiniz. Buradaki 0x demek bu kodun hex karakter tablosuna ait olduğunu gösterir. Gerçek bilgisayar dünyasında sadece ikili gruplar halinde karakterler kullanılır. 0x kısmı kullanılmaz!)
  2. Bu 6 bayt 48 bit'e dönüştürülecektir. Çünkü her byte 8 bittir. Her bitte bir adet 1 yada 0 a denk gelir. (01010011 01100101 01101100 01100001 01101101 00100001)
    (Bu dönüşümüde Online String Binary Converter sayfasından deneyebilirsiniz.)
  3. Bu 48 bit, 8 bitlik 6 gruba ayrılır. Yani her 8 bitlik grup bir karaktere denk gelir. Mesela; A, c, h, ?, *, K vb. gibi... (01010011 01100101 01101100 01100001 01101101 00100001)
  4. Kodlamanın mantığına dönecek olursak;
    Her 6 bit, 0 ile 63 arasında (yukarıdaki tabloda göründüğü gibi) bir değere dönüşecek ve yukarıdaki 64 karakterden birine eşlenecektir. Kodlamadan sonra sonuç "U2VsYW0h" dir.



[font=Oswald, sans-serif]Base64 Dolgusu[/font]


Base64 kodlaması, bayt dizisini alır ve bunları 6 bitlik gruplara böler. Bazen diziyi 6 bitlik grupların tam sayısına bölmek imkansızdır. Bu durumda, 0, 48 bitlik grupların tam sayısı olacak şekilde sıraya sokulacaktır. (Bu bit sayının ortak katları 6 ve 8). Bu işleme dolgu denir.

Dolgulu verileri kodlarken, 6 bitlik grup tamamen dolgulu (gruptaki her bit, orijinal veriden herhangi bir bit içermeksizin dolgulanır) varsa, "=" ile eşleştirilir.


Dolum işleminin nasıl yapılacağına ilişkin birkaç örnek aşağıda verilmiştir:



  • Selam!   ------>    01010011 01100101 01101100 01100001 01101101 00100001    ----->    U2VsYW0h
  • A: aa     ------>    01000001 00111010 00100000 01100001 01100001 xx xxxxxx    ----->    QTogYWE=
  • AliVeli    ------>    01000001 01101100 01101001 01010110 01100101 01101100 01101001     ----->    QWxpVmVsaQ==
  • A: aaaa    ------>    011000 010011 101001 100001 011000 010110 000101 1000001   ------>   YTphYWFh
(Yukarıdaki örneklerde 6'nın katı olacak kadar karakter yetmediğinde [=] karakteri ile dolgu yapılır. )




24 Bitt'e yada 48 Bitt'e,  son 6 biti doldurmamamızın nedeni, iki Based64 kodlanmış dizinin birleştirilmiş ve ardından kod çözülmesi durumunda, kodlanmış verilerin orijinal verilerle aynı olmasını sağlamasıdır.

Yani 6'ya ve 8'e tam bölünüyordurlar...




  _____                                _                        _____ 
  |_    _|                                | |                       |_    _|
    |  |   _ __   ___   ____      | |  ____        __   |   |  
    |  |  |  '__| / __|  |_    /        |  |/  /  \  \ /\ /    /    |   |  
    |  |  |  |     \__ \   /   /          |    <    \  V  V  /    |   |  
    \_/  |_|     |___/ /___|        |_ |\_\    \_/  \_/     \_/  
                                 ______                        
                                |______|                       
 

L3G4CY

Yeni Üye
Katılım
14 Tem 2017
Mesajlar
49
Tepkime puanı
0
Puanları
0
hex editör ile dll dosyaları editlenebilir mi o da buna benzer birşey
 

Trsz_kwT

Özel Üye
Katılım
2 Ara 2017
Mesajlar
467
Tepkime puanı
0
Puanları
0
EpsilonProgram' Alıntı:
hex editör ile dll dosyaları editlenebilir mi o da buna benzer birşey


Eğer söz konusu DLL Dosyası, crypt edilmemişse yada decrypt edersen yada assembly dili biliyorsan yapılabilir...
 

mersin escort bodrum escort fethiye escort alanya escort konya escort marmaris escort bodrum escort vozol puff sakarya escort sakarya escort sakarya escort serdivan escort sakarya escort sakarya escort sakarya escort sakarya escort sakarya escort sakarya escort bursa travesti bursa travesti
Üst
Copyright® Ajanlar.org 2012