Ana sayfa HEPSİ Base64 Geliştirme Çalışması

Base64 Geliştirme Çalışması

75
0

Merhaba arkadaşlar . Bu yazımda sizlere Çok sık kullanılan şifreleme algoritmalarından bir tanesi olan Base64 ‘ü nasıl geliştirebiliriz. Farklı string manipülasyonları eklenebilir mi ? gibi sorulara cevap bulabileceğiniz bir makale hazırladım .

Çok basit bir mantık ile şifreleme türü web üzerinde bulunan bir çok araç ile rahatlıkla çözülebilir durumdadır . Hatta php ve veritabanı işleri ile uğraşan okurlarımız çoğunlukla bu algoritmayı gördüklerinde string sonlarında bulunan artık ifadelerden rahatlıkla anlamakta . Artık ifadeler ise ‘=’ ile gösterilmektedir . Normal Koşullarda Base64’ün harfsel gösterimi mevcuttur yani A-Z ‘ ye , a-z’ ye ve 0-9 aralığında olmaktadır. Bunlarında Dışında İse + ve ‘/’ işaretleri kullanılmaktadır .

Temel Mantığına bakacak olursak yani işin teorik kısmı 🙂 , Şöyledir . 8 bitlik ifadeleri 6 bitlik bloklar halinde getirmeye çalışır artan verileri ise artık veriler kısmında gösterdiğim ifadeler ile doldurur. Base64 Şifreleme gibi dursada aslında tamamen sayı sisteminden oluşmaktadır . Yani ikilik sayı sistemine base2 denir . Onluk sayı sistemine base10, onaltılık sayı sistemi ise base16 olmaktadır . Ancak 64 bit’in özelliği şudur arkadaşlar : 64 bitlik sayı sistemi 6 bitlik bloklar ile ifade edilebilir . Sonuç olarak 6 bit ile 64 adet farklı karakter kodlanabilmektedir . Evet işin teorik kısmı bir yana biraz can sıkıcı gelebilir şimdi biz gerçek ve eğlendiren yanına odaklanalım .

Vb.net içerisinde basit String manipulasyonları mevcuttur . Mesela uzunluk al , 1. veriden 5. veriye kadara al şeklinde string işlemleri yapabildiğimiz basit yöntemler vardır . Bende bu hemen hemen herkesin bilebileceği (programlama , php üzerine olanlar) yöntemleri derleyerek base64 ‘ü bir tür gelişime açık hale getirdim . Tabi hemen heycanlanmayın sadece çözülmesi zor ve kendimize göre düzenleyebileceğimiz hale getirdim . Tabi bunu vb.net içerisinde yapma sebebim anlaşılabilir , nokta virgülü az oluşu (c#,php) sebebi ile vb.net ile yazıyorum . pek nokta, virgül , süslü parentezlerden hoşlanmıyorum 🙂 . Vb.net ile yazdığım kodları sizin ile paylaşıp diğer dillerde nasıl kullanılabilir bunu tartışacağız . Şimdi şifreleme adımlarımızı yazıp işe koyulalım

Şifreleme işlemi : 

1  – Şifrelenecek veri belirledik = “www.webdeyazilim.com”
2 – Şifrelenecek veriyi tersten yazdırdık = “moc.milizayedbew.www ”
3 – Base64 ile şifreledik = “bW9jLm1pbGl6YXllZGJldy53d3c=”
4 – Base64 ile şifrelediğimiz verinin uzunluğunu aldık = “28”
5 – Base64 ile şifrelenen verimizin uzunluğunu 2 ye böldük [açıklayacağım] =  “28 / 2”
6 – Metin uzunluğunun yarısını alarak stringi yarıya böldük ilk yarı =  “bW9jLm1pbGl6YX”
7 – Metin uzunluğunun yarısını alarak stringi yarıya böldük ikinci yarı =  “llZGJldy53d3c=”
8 – Karma Yapıldı ikinci  yarı  + ilk yarı : “llZGJldy53d3c=bW9jLm1pbGl6YX”
9 – Sık kullanılan ‘=’ ler ifadesini ‘@’ ile değiştirdik =  “XY6lGbp1mLj9Wb@!c3d35ydlJGZll”
10 – isteğe göre bu işlemler uzatılabilir değişen ifadeler farklılaşabilir 9. işlem tekrara tersten yazılabilinir.

 

Evet işlem adımlarımız bu şekilde ilerledi ve biz düz mantık çerçevesi içerisindn çıkıp kendimize göre basit string manipülasyonları ekledik . Eğer isteydik atık ifadeler için kullanılan “=”,  “/”,”+” ifadeleride dilediğimiz farklı harfler ile değiştirip daha zor bir hale getirebilirdik . Konunun anlaşılabilirliği ve sıradan bir base64 ‘ü kendimize göre düzenleyip hiç yoktan biraz daha zor bir hale soktuk . Sıradan kişiler bu sıradaki bir algoritmaya baktıklarında base64 olamayacağını az çok bilirler artık 🙂 yada bırakın decode edip şu veriye ulaşsınlar “]uY7w~rvRFfY
Sanırım biraz görüntüsüde kötü 🙁 …

Şifre Çözme İşlemi : 

Az çok değişiklik yaptık ve güzel bir sonuç elde ettik peki şimdi biz bunu şifreledik iyi güzelde nasıl çözeceğiz 🙁
Şaka bir yana şifreleme işlemi yaptıktan sonra o şifreyi tekrar çözebilmek için yaptığımız tüm işlemlerin tersinden devam ederek ilerleriz yanii 10. maddemizden 1. maddeye doğru ilerleriz . Tabiki bu şifreleme türlerinin iç içe olduğu zamanlarda daha doğru olur . Biz bir kaç küçük string manipulasyonu yaptık bu yüzden işlem sıramız değişebilir ancak . Yapacağımız olay yine aynı tersten gitmek . Bakalım tersten gittiğimizde nasıl bir yol izleyeceğiz bunu programsal olarak görelim .

base 64 geliştirme

Vb.net Kodlar

BİR CEVAP BIRAK

Lütfen bir yorum yazın!
Lütfen Adınızı Girin!