Database de şifrelenmiş alan da select

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Verdiğiniz örnek kayıtlara göre her karakterin ascii karakter kodu karşılığı (mesela 'A'->65) elde edilerek incelenirse aşağıdaki gibi bir yapı karşına çıkacaktır.
--------------------------------------------
YEŞİL=89,69,222,221,76 => 5 karakter
R?ÙÙI=82,63,217,217,73
-> -7, 6, 5, 4, 3 <- FARKLARI
--------------------------------------------
YEŞİLM=89,69,222,221,76,77 => 6 karakter
S@ÚÚJL=83,64,218,218,74,76
-> -6, 5, 4, 3, 2, 1 <- FARKLARI
--------------------------------------------
eğer, daha fazla ve çeşit kayıt girerek incelersen belki çözümün formülünü gerçekleştirebilirsin.

Not:Bu değerleri verdiğim toAscii fonksiyonuyla okudum.

Kod: Tümünü seç

function toAscii(const S: String): String;
var i:Integer;
begin
  Result:='';
  for i:=Length(S) downto 1 do
   if Result='' then Result:=IntToStr(Ord(S[i]))
   else Result:=IntToStr(Ord(S[i]))+','+Result;
end;
hatta verilen örnek her ne kadar yetersiz olsa bile şu iki fonksiyonu bir dene derim.

Kod: Tümünü seç

function KodCoz(const S: String): String;
var i,n,Len:Integer;
begin
  Len:=Length(S);
  n:=12-Len;
  Result:=S;
  for i:=1 to Len do begin
    Result[i]:=Chr(Ord(S[i])+n);
    dec(n);
  end;
end;

function Kodla(const S: String): String;
var i,n,Len:Integer;
begin
  Len:=Length(S);
  n:=12-Len;
  Result:=S;
  for i:=1 to Len do begin
    Result[i]:=Chr(Ord(S[i])-n);
    dec(n);
  end;
end;
bu fonksiyonlara göre: Kodla('YEŞİL')->R?ÙÙI ve Kodla('YEŞİLM')->S@ÚÚJL değerlerini verir. KodCoz('R?ÙÙI')->YEŞİL ve KodCoz('S@ÚÚJL')->YEŞİLM değerlerini verir. Bu şekilde değer verebilen bir yığın daha kod çıkarılabilir. Bunun için tabloda bulunan başka bir alan değeri de gerekebilir veya kaydın bulunduğu kayıt numarası bile gerekebilir ama bu fonksiyonlar eğer çözüm getirirse de çözüm bu kadar basit olduğu için çok şaşırırım.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@sabanakman
@sabanakman yazdı:eğer çözüm getirirse de çözüm bu kadar basit olduğu için çok şaşırırım.
- Biliyoruz ki kırılmayacak şifre yok. Amaç açık. Verinin güvenliği. Koyulan hedef ise her önüne gelenin bu veriye ulaşmamasıdır. Adamlar basit bir fonksiyonla bunu yapmışlar demek ki.

- Güvenlik seviyesinin artması, veritabanının sorgusunda performans kaybı demektir.

- Çözüm adına yaklaşımın geçerli. Şimdi @conari'nin teyidini bekliyoruz..
Resim
Resim ....Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kodla Fonk. kullanmak istedim ama aşağıdaki Mesajı alıyorum.

Kod: Tümünü seç

[Error] SirForm.pas(25): Unsatisfied forward or external declaration: 'TSktForm.Kodla'

Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Pardon fonksiyonu tam koyamamışım..

Çalışıyor aslında, Ama Uzun değerlerde son karekterlerde saçmalıyor gibi.
Evet 7 karakterden büyük olduğu zaman son karaketerleri değiştiremiyor.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@conari

- İyi ama neden yazmıyorsun da bizi müneccim pozisyonuna sokuyorsun ? :lol: :lol: :lol:

- Şimdi sana görev, veritabanına bir dizi kayıt giriyorsun, girdiğin kayıtlar ile sonuçlarını görebileceğimiz bir tabloda buraya yazıyorsun. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Sory , Olunca biraz heyecan yaptım da :)
Data görüntüleri;

EFLATUN : @BI?SU7
TURUNCU : OQOSMC>
KAHVERENGİ : I@H?.;.70Æ

fonksiyon okuduğu zaman ise

EFLATUN : @BI?SUO
TURUNCU : OQOSMCV
KAHVERENGİ : I@HWGUISMP

Şeklinde Okuyor hele Kahverengi de amma bozmuş olayı :)
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Evet.. Bu da şöyle bir sonuca götürür...

Kod: Tümünü seç

EFLATUN
------------------------------
69 - 64 = 5
70 - 66 = 4
76 - 73 = 3
65 - 63 = 2
84 - 83 = 1
85 - 85 = 0
78 - 55 = 23

TURUNCU
------------------------------
84 - 79 = 5
85 - 81 = 4
82 - 79 = 3
85 - 83 = 2
78 - 77 = 1
67 - 67 = 0
85 - 62 = 23

KAHVERENGİ
------------------------------
75 - 73 = 2
65 - 64 = 1
72 - 72 = 0
86 - 63 = 23
69 - 46 = 23
82 - 59 = 23
69 - 46 = 23
78 - 55 = 23
71 - 48 = 23
221 - 198 = 23

- Sayac 0'ın altına düşünce sabit 23 fark kullanılıyor demek oluyor...

- Fonksiyonun revize edilmiş hali aşağıda...

Kod: Tümünü seç

function KodCoz(const S: String): String;
var i, n, Len, fark :Integer;
begin
  Len:=Length(S);
  n:=12-Len;
  Result:=S;
  for i:=1 to Len do begin
    if n < 0 then fark := 23
             else fark := n;
    Result[i]:=Chr(Ord(S[i])+fark);
    dec(n);
  end;
end;

function KodLa(const S: String): String;
var
  i, n, Len, fark : Integer;
begin
  Len:=Length(S);
  n:=12-Len;
  Result:=S;
  for i:=1 to Len do begin
    if n < 0 then fark := 23
             else fark := n;
    Result[i]:=Chr(Ord(S[i])-fark);
    dec(n);
  end;
end;
- Afiyet olsun.... :lol:
Resim
Resim ....Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Ellerine sağlık; Çalışıyor.
Denemedim ama bir şey soracağım..
Değerler de yani Mavi53 (rakamsal) gibi bir şey olursa Kodla fonks. yamulabilirmi?
:) :lol: :D :roll:
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Hocam daha önceki başlıktaki sözlerimi tekrarlatma.. Müneccim pozisyonu meselesi. :lol:

Deneyip görecek olan sensin. Sanki senin veritabanı ve program bizde de var gibi sorular sormaktan vazgeç... :wink:
Resim
Resim ....Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

mrmarman yazdı:Hocam daha önceki başlıktaki sözlerimi tekrarlatma.. Müneccim pozisyonu meselesi. :lol:

Deneyip görecek olan sensin. Sanki senin veritabanı ve program bizde de var gibi sorular sormaktan vazgeç... :wink:
Hoca Kusura Bakma sen fonk. hemen değiştirince bende gaza geldim.

Sanırım oldu.
Sayısal alanlarda da denedim.. 10 karekterlik alanlarda da
Eğer başka karekterler varsa ne yapalım artık.
Eline sağlık.. :lol: :D
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@sabanakman'ı da unutmayalım. Yaklaşımımızı doğru algıladı ve hemen operasyona geçti. :wink:
Resim
Resim ....Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Kısa sürede neler olmuş burada :). Konu ile ilgili içgüdüsel ilk yaklaşımımın bu kadar yakından geçmesi beni mutlu etmesine karşın aklımda bazı sorular var. Sayın @conari,

1. Bu tabloya ait triggerlar var mı? varsa burada yayınlayabilir misin?
2. Bu veritabanına ait User Defined Functions var mı? varsa burada yayınlayabilir misin?

Problemin başka bir çözümü de bu noktalardan gelebileceğine inanıyorum (olmayabilir de) ve sadece merak ettiğimden bu soruları soruyorum. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

@sabanakman arkadaşım

Veritabanında bir çok trigger ve User Defined Functions lar var. Ama program Tic.bir paket program olduğu için içerisinde bulunan trigger v.s. burda yayınlanmasının, bu kadar yardımlarınızdan sonra, Affınıza sığınarak doğru olmadığını düşünüyorum. :oops: :roll:

İyi çalışmalar.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Hepsini yayınla dememiştim sadece o tablo ve o alanı ilgilerndirenleri kastetmiştim ama tamamdır. No problem. Madem çözüldü öyle kalmalı. :roll:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Teşekkürler
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla