Türkçe Karakter Problemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Türkçe Karakter Problemi

Mesaj gönderen xozcanx »

Merhaba;
Amaç : Verilerin şifrelenmesi.
Kayıt esnasında aşağıdaki function ile verileri Hex koduna çevirip veritabanında o şekilde saklamak istedim.

Kod: Tümünü seç

function StrToHex(S: String): string;
var I: Integer;
begin
  Result:='';
  for I :=1 to length (S) do
  Result:=Result+IntToHex(ord(S[i]),2);
end;

Fakat şöyle bir sorun yaşadım, geri dönüş yapmak istediğimde türkçe karakterlerde sorun olduğunu farkettim. Bu durumu nasıl çözümleyebilirim. Konu hakkında fikir verebilirmisiniz.

Resim

Kod: Tümünü seç

function HexToStr(H: String): String;
var I: Integer;
begin
  Result:='';
  for I :=1 to length (H) div 2 do
  Result:=Result+Char(StrToInt('$'+Copy(H,(I-1)*2+1,2)));
end;
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Türkçe Karakter Problemi

Mesaj gönderen mkysoft »

Büyük ihtimalle unicode bir versiyon kullanıyorsunuz. Unicode sistemlerde bir karakter 2 byte yer tutar. Ord fonsiyonu ile karakter numarasını alırsanız dolayısıyla hata oluşur. Bunu yapmak yerite metni unicode olarak byte array çevirdikten sonra hex dönüşümü yapmalısınız.
Son olarak, hex bir şifreleme değildir, kolayca çözülebilir. Kullanıcıların gözlerinden saklamış olursunuz sadece.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Türkçe Karakter Problemi

Mesaj gönderen xozcanx »

mkysoft yazdı:Büyük ihtimalle unicode bir versiyon kullanıyorsunuz. Unicode sistemlerde bir karakter 2 byte yer tutar. Ord fonsiyonu ile karakter numarasını alırsanız dolayısıyla hata oluşur. Bunu yapmak yerite metni unicode olarak byte array çevirdikten sonra hex dönüşümü yapmalısınız.
Son olarak, hex bir şifreleme değildir, kolayca çözülebilir. Kullanıcıların gözlerinden saklamış olursunuz sadece.
Cevap için teşekkürler :) evet şifreleme diyerek yanlış bir tabir kullanmışım, son kullanıcıların kolayca ulaşmasını önlemek desek daha doğru olacaktır.
Tekrar Teşekkürler.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: Türkçe Karakter Problemi

Mesaj gönderen pasa_yasar »

hazır şifreleme sistemleri var. Lockbox 3 falan kullan onun aracılığı ile çevir ve geri al. Daha sağlam olur. Eğer değerler benim kontrolümde olsun diyorsan başka tabi
Cevapla