Şifreleme Procedure Delphi Sürüm Farkı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Şifreleme Procedure Delphi Sürüm Farkı

Mesaj gönderen NewMember »

Arkadaşlar Merhaba;

Aşağıdaki fonksiyon ile string şifreleme ve çözme yapıyorum.Bu fonksiyon bir stringi şifreliyor, ve aynı şifreli stringide eski haline döndürüyor.
Bu fonksiyonu Delphi 7 de kullanıyordum.Ancak projelerimi Delphi XE geçirince bu fonksiyon şifrelenmiş stringi eski haline döndürmemeye başladı.

Kod: Tümünü seç

function StringSifreleveCoz(const Value:String ): String;export;
var
  CharIndex: Integer;
  ReturnValue: String;
begin
  ReturnValue := '';
  for CharIndex := 1 to Length(Value) do
  begin
    ReturnValue := ReturnValue + chr(not (ord(Value[CharIndex])));
  end;
  Result :=ReturnValue;
end;
Örnek olarak;

Delphi 7 de NewMember stringini şifrelersem ±šˆ²š’š oluyor diyelim.

±šˆ²š’š
tekrar çalıtırırsam ise NewMember dönüşüyor.

Ama DelphiXE de bu NewMember sonucuna ulaşamıyorum.

Tüm projelerimde kullandığım için bu şifrelerin doğru çöülmesi gerek.

Şöyle bir şey denedim.Delphi 7 de dll yazıp bu dll i XE de ki projede kullanmaya çalıştım.Ancak orda da String değişkeni sorun çıkarttı.Bende string olarak değil de widestring olarak kullandım.Ama bu seferde şifreyi doğru çözüyor ama eksik geliyor.
Örnek Mesela hjhfjhfhadsfhjjjjwerıweuıruweıruweoıjjjlkjekrjwejrwejrewkjrweljrklwej şeklinde şifrelenmiş bir mesajın çözümü

28as009qwe
442343
777090
2342342342
sdf790s0ffsd
olsun diyelim.Yani doğrusu bu diyelim.

28as009qwe
442343
777090
23
bu kadarı dönüyor.

Yan dll kullanımında da sonuca ulaşamadım.

Yukarıdaki fonksiyonun aynen delphi 7 de derlenmiş halinin verdiği sonuçlar XE de derlenmiş halinin aynı sonucu vermesi için ne yapabilirim?
Yardım edecek arkadaşlara şimdiden teşekkür ederim.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2357
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Şifreleme Procedure Delphi Sürüm Farkı

Mesaj gönderen freeman35 »

ansistring / unicode farkından kaynaklı. Buna alışana kadar biraz zorluk çekersin. xe den daha yeni versiyon kullanmanı tavsiye ederim. xe ve sonrasında string tipi unicode stringtir. onun yerine ansistring kullan, ama heryerde kullanmanı tavsiye etmem, onun yerine kodlarını unicode mantığına çevir. Alışana kadar biraz zor gelir sonrasında alışırsın.
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Şifreleme Procedure Delphi Sürüm Farkı

Mesaj gönderen NewMember »

@freeman çok teşekkürler.Söylediğin gibi yapınca oldu.Komponentlerden dolayı daha üst sürüme geçemiyorum.Sadece XE sürümüne kullandığım komponentler ayarlayabildim.Bir çok yerde sıkıntı çıkıyor sadece burda değil.PChar ifadelerinde de benzer sorun çıkmıştı.Halletmiştim.Burda da bu şekildeymiş meğer.

Peki XE den yeni versiyon derken, üst sürümlerde bu sıkıntı yokmudur?
Hassaten önerdiğin bir sürüm varmı? Mesela Xe5 gibi? veya XE 3 gibi?
EN azından yeni projeler için denenebilir.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2357
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Şifreleme Procedure Delphi Sürüm Farkı

Mesaj gönderen freeman35 »

geçeceğin sürümler arası önemli fark olduğu için bence berlin e geç, Almanyadaki değil :) delphi 10.1 hatta yılbaşından önce 10.2 çıkacaktı. Gavur bizden müslüman olduğundan verdikleri sözü tutarlar. O zaman ona geçersin.
ilk mesajımdada yazdığım gibi en büyük değişiklik bu unicode a geçme olmuştu, string değişkenlerde birçok kodu elden geçirmek gerek.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Şifreleme Procedure Delphi Sürüm Farkı

Mesaj gönderen NewMember »

Teşekkürler.
Cevapla