FireDAC, Firebird ve Encryption

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
PROGRAMADOR
Üye
Mesajlar: 239
Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir

FireDAC, Firebird ve Encryption

Mesaj gönderen PROGRAMADOR »

Merhaba arkadaşlar,

FireDAc kullanarak Firebird veritabanını encrypt etmek ve verileri çağırdığımda da decrypt etmek istiyorum. Ancak günlerdir uğraşmama rağmen bu işin içinden çıkamadım.

Öncelikle veri tabanına kayıt ederken Datasource'un OnUpdateData eventinde encrypt etmeyi ve FDQuery'in AfterOPEN eventinde de decrypt etmeyi denedim. Fakat başarılı olamadım. Kod şöyle:

Kod: Tümünü seç

procedure TForm1.DataSource1UpdateData(Sender: TObject);
var
i:integer;
begin
  with TDataSource(Sender).DataSet do begin
     case State of
       dsInactive: ;
       dsBrowse: ;
       dsEdit: ;
       dsInsert: begin
           Edit;
           for i := 1 to FieldCount - 1 do begin  //id hariç
               Fields[i].AsString:= EncodeXXX(Fields[i].AsString);
           end;
       end;
       dsSetKey: ;
       dsCalcFields: ;
       dsFilter: ;
       dsNewValue: ;
       dsOldValue: ;
       dsCurValue: ;
       dsBlockRead: ;
       dsInternalCalc: ;
       dsOpening: ;
     end;
  end;
end;

procedure TForm1.FDQuery1AfterOpen(DataSet: TDataSet);
var
  i:integer;
begin
    with DataSet do begin
        First;
        while not EOF do begin
            Edit;
                for i := 1 to FieldCount - 1 do
                    DataSet.Fields[i].AsString:=DecodeXXX(DataSet.Fields[i].AsString);
            Next;
        end;
    end;
end;
Bu kodun neresinde hata var anlamadım. İlk yardımınızı bu konuda istiyorum.

Sizlerden istemiş olduğum ikinci yardıma gelince;yukarıda yapmaya çalıştığım string encyption yöntemi yerine AES-ECB-NNN diye FireDAC için bir şifreleme sisteminin olduğunu farkettim. Ancak bunun kullanımıyla ilgili hiçbir döküman ve örnek bulamadım. String encryption yerine bu yöntemi kullanmam daha mı iyi olur sizce?
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Cevapla