Autor |
Beitrag |
herr-master
      
Beiträge: 34
|
Verfasst: So 29.09.13 18:53
Ich hoffe das hier ist der richtige bereich für dieses theme könnte der entwickler von MPArith es für delphi xe4 anpassen.
Und warum bekomme ich bei mp_mul(mp_p,mp_q,ergebnis);
12 * 13 = 144 ????
12 * 13 ist 156 oder kann ich nicht mehr rechnen.
Delphi-Quelltext 1: 2:
| mp_rsaep(m,e,n,c); edit4.text:=mp_adecimal(m); |
Bekomme ich das hier zu sehen s_mp_read_radix:invalid number synatx zu sehen.
so sieht der ganse code aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var c, n, e,m: mp_int; begin mp_init4(c,n,e,m); mp_read_decimal_str(e,edit1.text); mp_read_decimal_str(n,edit2.text); mp_rsaep(m,e,n,c); mp_read_decimal_str(c,edit3.text); edit4.text:=mp_adecimal(m); |
Moderiert von Martok: Delphi-Tags hinzugefügt
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 29.09.13 19:25
Hallo,
herr-master hat folgendes geschrieben : | könnte der entwickler von MPArith es für delphi xe4 anpassen. |
Woran anpassen? MPArith funktioniert tadellos.
herr-master hat folgendes geschrieben : | Und warum bekomme ich bei mp_mul(mp_p,mp_q,ergebnis);
12 * 13 = 144 ????
12 * 13 ist 156 oder kann ich nicht mehr rechnen. |
Ohne Quelltext kann man nicht viel sagen. Da MPArith fehlerfrei arbeitet, d.h. 12*13 richtig rechnet, nun ja, ...
herr-master hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var c, n, e,m: mp_int; begin mp_init4(c,n,e,m); mp_read_decimal_str(e,edit1.text); mp_read_decimal_str(n,edit2.text); mp_rsaep(m,e,n,c); mp_read_decimal_str(c,edit3.text); edit4.text:=mp_adecimal(m); | |
Nach der Beschreibung von
Quelltext 1: 2:
| procedure mp_rsaep(const m, e, n: mp_int; var c: mp_int); {-Basic RSA encryption operation, c=m^e mod n.} |
ist c das Ergebnis der Operation. Nach Deinem Quelltext hast Du zwar m initialisiert, aber diesem keinen Wert zugewiesen. Außerdem verwirrt mich mp_read_decimal_str(c,edit3.text). c ist das Ergebnis, warum erhält c den Wert von edit3?
Etwas mehr Quelltext wäre für eine Fehlersuche hilfreich.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
herr-master 
      
Beiträge: 34
|
Verfasst: So 29.09.13 19:48
Allso wenn ich mparith so verwende in delphi xe4 bekomme ich diese meldung:
[dcc32 Fehler] mp_rc16.pas(242): E2107 Operandengröße stimmt nicht überein allso scheint es ja nicht in delphi xe4 einwandfrei zu functioniren.
So sieht bei mir das mp_mul aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| mp_p, mp_q, ergebnis:mp_int; begin mp_init3(mp_p, mp_q, ergebnis); mp_read_decimal_str(mp_p, Edit1.Text); mp_read_decimal_str(mp_q, Edit2.Text); mp_mul(mp_p, mp_q, ergebnis); Edit3.Text:=mp_adecimal(ergebnis); |
Moderiert von Martok: Delphi-Tags hinzugefügt
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 29.09.13 20:15
Hallo,
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var mp_p, mp_q, ergebnis:mp_int; begin mp_init3(mp_p, mp_q, ergebnis); mp_read_decimal_str(mp_p, edit1.text); mp_read_decimal_str(mp_q, edit2.text); mp_mul(mp_p, mp_q, ergebnis); edit3.text:=mp_adecimal(ergebnis); mp_clear3(mp_p, mp_q, ergebnis); end; |
funktioniert problemlos. Für 12 und 13 ergibt sich korrekt 156.
herr-master hat folgendes geschrieben : | Allso wenn ich mparith so verwende in delphi xe4 bekomme ich diese meldung:
[dcc32 Fehler] mp_rc16.pas(242): E2107 Operandengröße stimmt nicht überein |
Verstehe ich nicht. Bei mir gibt's es keine Fehlermeldung.
An Zeile 242 steht
Quelltext
Kommt bei Dir an dieser Stelle der Fehler?
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
herr-master 
      
Beiträge: 34
|
Verfasst: So 29.09.13 20:26
ja genau an der stelle kommt der fehler.
hab es mal so gelöst
Delphi-Quelltext 1:
| mov esi,offset @@table |
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 29.09.13 20:56
Dass die Zeile etwas vollkommen anderes macht, ist dir aber klar, oder?
Wenn, dann wohl eher so: Delphi-Quelltext 1:
| mov eax,offset @@table | (ohne den Zusammenhang zu kennen)
|
|
herr-master 
      
Beiträge: 34
|
Verfasst: So 29.09.13 21:04
wenn ich das benutze
Delphi-Quelltext 1:
| mov eax,offset @@table |
kommt bei 12 * 13 = 144 raus
Sorry mein fehler hatte noch db mit dd ersetzt darum kam 144 raus.
Mal noch eine frage am rande
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| mp_init4(c,n,e,m); mp_read_decimal_str(e,edit1.text); mp_read_decimal_str(n,edit2.text); mp_rsaep(m,e,n,c); mp_read_decimal_str(m,edit3.text); edit4.text:=mp_adecimal(c); |
selbst wenn ich das benutze functioniert es nicht.
E=65537(10er)
n=123457171127564473956360536343713050577(128bits)
Bei fgint ist es ja so Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| FGintRSA.RSAEncrypt ( StringEdt.Text, Private_Exp, Modulus_N, EncryptedString ); |
Warum muss ich bei mparith so viele sachen benutzen für ein rsa encrypt?
|
|
|