Ömer Ücel

May 12, 2008

PyTR , Koruma, PyCrypto

Filed under: Genel — Tags: , , — Ömer Ücel @ 2:59 am

Uzun süreden beri vakit bulmak için uğraşıyorum ancak bu gidişle pytr.org için pek vakit bulamayacağım. Web sitesi yapımı masaüstü programı hazırlamakdan daha çok ayrıntılı bir iş ne yazık ki. Bundan ötürü eski drupal ile hazırlanmış olan sisteme geri döndüm. Sistem ile biraz daha uğraşıp drupal ile devam etmek daha iyi olacak sanırım.

PHP öğrenimine başlarken geliştirdiğim koruma projesi ile ilgilendim biraz. Dün sf.net üzerindeki son kodları indirip 0.3 sürümünü google code üzerine aktardım. Bugünde dağınık olan kod yapısını düzenleyip bir sınıf içerisinde topladım her şeyi. Daha derli toplu bir yapıya kavuştu. ilerki sürümde sanırım kullanıcı yönetimi ve veritabanı ile işlevsellik katacağım biraz. Yalnız bu biraz bekleyecek.

Hatırlat tasarımı tamamlandı. Sıra geldi asıl işe. İlk adım olarak bugün biraz veri gizleme, gizlenmiş veriyi çözme için bazı denemeler yaptım. Sonunda şu modülü kullanmada karar kıldım. Bununla ilgili daha önce bir çalışma yapmıştım onuda biraz inceleyip düzenledim ve sonucunda aşağıdaki gibi bir sınıf ortaya çıktı. Sırada program ayarları ve yeni kullanıcı oluşturma işlemleri var. Onuda yarın tamamlarım gibi bir düşünceye sahibim bir aksilik çıkmazsa.

#-*- coding: UTF-8 *-*

from Crypto.Cipher import *

class gizlilik:
    def __init__(self,anahtar,karakter,algoritma,mod):
        self.anahtar = anahtar
        self.karakter = karakter
        self.algoritma = algoritma
        self.mod = mod

    def gizle(self,veri):
        if len(veri) % self.algoritma.block_size !=0:
            veri = veri + self.karakter * (self.algoritma.block_size - len(veri) % self.algoritma.block_size)
        return self.algoritma.new(self.anahtar,self.mod).encrypt(veri)

    def coz(self,veri):
        veri = self.algoritma.new(self.anahtar,self.mod).decrypt(veri)
        while veri[-1:] == self.karakter:
            veri = veri[:-1]
        return veri

test = gizlilik("Benim anahtarım","~",Blowfish,Blowfish.MODE_ECB)

gizlenmis_metin = test.gizle("gizlenecek metin")
print test.coz(gizlenmis_metin)

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress