'Bu uygulamamızda bir veritabanı içerisindeki 'Tüm tabloları, bu tablolara ait alanları 'alanları sahip olduğu kayıtları listeleceğiz 'değiştirilebilir alanlarıda şifreleyeceğiz 'Burada DAO yöntemiyle kayıtlarımı ekledim. 'Project - Preferences - Microsoft DAO 3.6 Object Library yi ekledim 'Db database nesnem 'rs kayıtsetim olacak Dim db As Database Dim rs As Recordset Dim sTablo, sAlan As String 'sTablo bulunan tablo adı 'sAlan bulunana alan adı Private Sub Form_Load() Dim i, j Set db = OpenDatabase(App.Path & "satis.mdb") 'db.TableDefs.Count var olan tablo sayısı For i = 0 To db.TableDefs.Count - 1 If db.TableDefs(i).Attributes = 0 Then 'sadece kullanıcı tanımlı tabloları sTablo = db.TableDefs(i).Name Set rs = db.OpenRecordset(sTablo) 'kayıtsetini açtık sTablo tablo adını vericek If rs.RecordCount > 0 Then For j = 0 To rs.Fields.Count - 1 'belirtilen tablodaki alan sayısını If rs(j).Attributes = 34 Then 'alan adlerını sAlan değikenine gönderdik sAlan = rs.Fields(j).Name With rs Do .Edit rs(j) = Sifrele(rs(j), "togius") 'Şifreledik... .Update .MoveNext Loop Until .EOF End With rs.MoveFirst End If Next End If End If Next End Sub Function Sifrele(ByVal X As String, ByVal Anahtar As String) As String Dim i, A, B Dim uz uz = Len(Anahtar) j = 1 'for i=1 to len(x) döngüsü ile 'şifrelenen metindeki her harfi tek tek 'karakter bilgilerini değiştiriyoruz.. For i = 1 To Len(X) A = Asc(Mid(X, i, 1)) 'A sayısına şifrelenen harfin sayısay kodu B = Asc(Mid(Anahtar, j, 1)) 'B sayısına şifrelenen Anahtar kelime harfinin sayısal kodu 'asc(a) gibi düşünün bunun sayısal karşılığını veriyor 'Chr verilen sayıyı metne çevirir '0-255 karaketerimiz olduğundan '256 ya göre mod aldım Mid(X, i, 1) = Chr((A + B) Mod 256) 'A+E harfileriniden yeni değeri burada elde ediyoruz. 'anahtar kelimeyide yine 'kendi uzunluğu ile modluyoruz 'armut için ElmaE yapıyoduk ya tekrar başlatıyoduk elmayı 'işte o hesap '1 ile topladım çünkü j 0 değirini hiç görmesin j = j Mod Len(uz) + 1 Next Sifrele = X End Function
|