Bir gün benim gibi python'la yeni haşır neşir olan birine rastladım. IRC'de #pardus kanalında tdgunes takma adlı biri tıpkı benim gibi bu şifreleme algoritmalarına takmış durumdaydı. Taha Doğan Güneş daha o zaman bir projeye başlamayı düşündüğünü söyledi. Ben de onunla aynı fikirde olduğumu söyledim ve google-code'da md5kontrolcu isminde bir proje başlattık. SVN kullanmayı bu proje sayesinde öğrendim diyebilirim. Ha SVN'i hâlâ tam manasıyla kullanamıyorum orası ayrı :D Neyse python ve kontrol özetleri bir araya gelince hashlib kütüphanesini kullanmaktan daha doğal bir şey olamaz. Biz konsol Tkinter Qt falan uğraşırken hashlib'deki sha1 ve kardeşleri de ilgimizi çekti ve projenin adını md5kontrolcu'dan kontrolcu'ya değiştirdik. 1.x li sürümlere geldik sürekli gelişerek. Elimizde konsol ve 2 farklı arayüz (Qt ve Tkinter) vardı o zamanlar. Tkinter'i yapma sebebim Xfce gibi hafif bir masaüstünü Qt gibi bir arayüzle kirletmenin kötü olacağı düşüncesiydi. Tamam Tkinter hafif ama bir o kadar da çirkin bir görünüme sahip.
Neyse biz 1.0, 1.5, 1.6 derken proje içinden çıkılamaz bir hal almaya başladı. Bazı yapıları daha işlevsel hale getirmeye çalışırken anlaşılması zor yapılar oluşmaya başlamıştı. 1.7 sürümüyle epey hata giderilecekti ama yapı öyle karışmıştı ki anlayamıyorduk. Kodu yazıyorduk çalışıyordu ama koda daha sonra baktığımızda yahu bu nasıl çalışıyor deyip kalıyorduk! Proje bu yüzden bir duraklama durumuna girmişti.
Bir gün içimde bir kıvılcım oluştu. Bu kıvılcımın sebebi kütüphaneden aldığım "Nesneye yönelik programlama: C++" kitabındaki nesne mantığını az da olsa anlamış olmamdı. Kontrolcu 1.x'li sürümlerde çok fazla listeler sözlükler ortalığı karıştırıyordu. Ama nesneler ile bu karışıklığı gidermekte hiç zorlanmayacaktık. Taha Doğan'la anlaştık. 2.0'ı baştan -0'dan- yazalım dedik. 1.x'leri acemiliğimize verip unutalım adamakıllıca oturup baştan yazalım dedik. Başladık baştan yazmaya. Taha Doğan yenilenmiş Qt arayüzü yazmakla meşgul olurken ben de arkada çalışacak yapıları oluşturmaya başladım. Nesne yapısı ile gerçekten mükemmel bir anlaşılabilirliğe ve hıza kavuştuk. Ha bir de yeniden yazmaya başlayınca henüz yapı çok karışmadan dil desteği de ekleyelim dedik ve kontrolcu'nun anadilini İngilizce yaptık ki çevrilebilsin ve dünyaca anlaşılabilsin. Bana kalsa Türkçe yapardım ama Türkçe yapınca tanıtamıyorum ve tanınmadan kalıyor projelerim! Neyse dil desteği getirdik ve ilk olarak (Türkçe ve İngilizce dışında) İtalyanca çeviriyi elimize aldık. İtalyanca çeviriyi yapan Mirsda Hoxha isimli arkadaşa teşekkür ediyorum ama o muhtemelen bu teşekkürü görmeyecektir :D Ek: Bu yazıyı yazdığım sırada ispanyolca çeviri gelmiş :D Ona da teşekkür ediyoruz :D
Taha Doğan Windows için de bir arşiv oluşturduktan sonra 2.0-alfa sürümünü yayınladık. Bu yazıyı okuyanlar belki bize yardımda bulunmak isterler. İşte o kimselerden şöyle bir yardımda bulunmalarını istiyorum. Yazılımı kullanın, beğenmediğiniz yerleri olsun hataları olsun bize buradan bildirin. Böylece bizim göremediğimiz hatalar olabilir onları da çözmüş oluruz.
Yahu anlatıp duruyorum da bu yazılım ne iş yapıyor?
Kontrolcu; md5, sha1, sha224, sha256, sha384, sha512 tek yönlü şifreleme algoritmalarını kullanabilen, Bu yöntemlerle dosyalarınızın kontrol özetlerini öğrenebileceğiniz, kaydedebileceğiniz ya da hazır kaydedilmiş olanlardan kontrol edebileceğiniz, python ile yazılmış bir yazılımdır.
Örnek vermek gerekirse: Pardus disk kalıbını(iso) indirdiniz. Peki ama bu disk kalıbı doğru mu indi yoksa hatalı mı indi merak ediyorsunuz. Disk kalıbını indirdiğiniz yerde sha1sum ya da md5sum gibi anlamsız harf ve rakamlardan oluşan bir kontrol özeti var. İşte bu yazılımı kullanarak o kontrol özeti ve disk kalıbından oluşturulacak kontrol özetlerini karşılaştırıp disk kalıbının doğru inip inmediği hakkında bilgi sahibi oluyorsunuz :D
Neyse Qt arayüzden bir resim koyayım da gözümüz günlümüz şenlensin değil mi :D
















