30-11-2022, Saat: 08:47
(17-10-2018, Saat: 12:07)seci20 Adlı Kullanıcıdan Alıntı: Merhaba ustalarım. Uzun süredir uğraştığım ama bir türlü çözüme kavuşturamadığım bir hata var. Şuanki projemi Delphi 10.2 versiyonu ile geliştiriyorum. Bir hesaplama yapmam gerekli Aes 256-ECB üzerinden yalnız bir türlü doğru hesaplamayı yapamıyorum. Aynı kodları delphi 7 üzerinden yaptığımda sorunsuz yapabiliyorum ama 10.2 versiyonunda bir türlü doğru hesaplama yapamıyorum.
Aes hesaplama için kullandığım kütüphane linki şu şekilde.
https://github.com/StephenGenusa/DCPCrypt
Hesapladığım kod ise şu şekilde.
Function StrToHex(s: ansiString;const ters:boolean=false): ansiString; Var i : Integer; Begin Result:=''; If Length(s)>0 Then For i:=1 To Length(s) Do begin if ters=False then Result:=IntToHex(Ord(s[i]),2)+Result else Result:=Result+IntToHex(Ord(s[i]),2); end; End; function aescalcualtor (key:Ansistring):Ansistring; var Cipher : TDCP_rijndael; IV : Ansistring; Data : Ansistring; i:integer; Buffer : Ansistring; begin Data := #$00#$01#$02#$03#$04#$05#$06#$07#$08#$09#$0a#$0b#$0c#$0d#$0e#$0f; IV := ''; Cipher := TDCP_rijndael.Create(nil); Cipher.Init(Key[1], 256, @IV[1]); SetLength(Buffer,16); Cipher.EncryptECB(Data[1], Buffer[1]); Result:=buffer; end; procedure TForm1.btn1Click(Sender: TObject); begin mmo1.Lines.Add(StrToHex(aescalcualtor('11'))); end;
Delphi 7 çıktısı ve doğru olanı
B1CD5BE4ED3DBE649DA2FD2100FB47AF
Delphi 10.2 ise şu şekilde.
527C056F6F9C657B07A1B209B38544CE
String olarak değiştirdim ansistring yaptım malasef bir türlü doğru hesaplama yaptıramıyorum. Doğru olanı delphi 7 hesaplıyor ama 10.2 malasef doğru hesaplama yapmıyor. Yardımlarınız için şimdiden çok teşekkür ederim. Doğru bir hesaplama yapan farklı bir kütüphane var ise elinizde fikirlerinizi belirtirseniz çok memnun olurum şimdiden...
Merhabalar,
Kontrol edebilirmisiniz.
https://github.com/TurboPack/LockBox
Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.

