PyTR , Koruma, PyCrypto
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)