Modulo macht Probleme
Guten Tag liebe Community,
in der Schule ist momentan der "Diffie-Hellman-Schlüsselaustausch" unser Thema in Wirtschaftsinformatik.
Ich habe das Verfahren in JavaScript nachprogrammiert, jedoch gibt es anscheinend ein Problem mit Modulo (mein Lehrer konnte den Fehler nicht finden).
Wenn ich zum Beispiel Math.pow(45, 35) % 97 rechne gibt mir JavaScript als Ergebnis 89 aus, das richtige Ergebnis ist aber 42.
Kann es daran liegen das aus Math.pow(45, 35) eine Kommazahl (7,2851413424162939229152747024952e+57) rauskommt und JavaScript damit nicht klar kommt oder bin ich einfach Blind und finden den Fehler in meinem Code nicht. (Oder bring ich das Diffie-Hellman-Verfahren zum Sturz?
)
Vielen Dank im Voraus
Grüße
Armas
Der Code:
Guten Tag liebe Community,
in der Schule ist momentan der "Diffie-Hellman-Schlüsselaustausch" unser Thema in Wirtschaftsinformatik.
Ich habe das Verfahren in JavaScript nachprogrammiert, jedoch gibt es anscheinend ein Problem mit Modulo (mein Lehrer konnte den Fehler nicht finden).
Wenn ich zum Beispiel Math.pow(45, 35) % 97 rechne gibt mir JavaScript als Ergebnis 89 aus, das richtige Ergebnis ist aber 42.
Kann es daran liegen das aus Math.pow(45, 35) eine Kommazahl (7,2851413424162939229152747024952e+57) rauskommt und JavaScript damit nicht klar kommt oder bin ich einfach Blind und finden den Fehler in meinem Code nicht. (Oder bring ich das Diffie-Hellman-Verfahren zum Sturz?
Vielen Dank im Voraus
Grüße
Armas
Der Code:
Code:
<html>
<head>
<title>Aufgabe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
"use strict";
function SchluesselAustausch() {
var vA;
var vB;
var vKleinA;
var vKleinB;
var vPrimzahl;
var vNaturZahl;
var vKa;
var vKb;
vPrimzahl = parseFloat(document.getElementById("PrimzahlTextfeld").value);
vNaturZahl = parseFloat(document.getElementById("NaturZahlTextfeld").value);
vKleinA = parseFloat(document.getElementById("geheimATextfeld").value);
vKleinB = parseFloat(document.getElementById("geheimBTextfeld").value);
vA = Math.pow(vNaturZahl, vKleinA) % vPrimzahl;
alert("A = " + vA);
vB = Math.pow(vNaturZahl, vKleinB) % vPrimzahl;
alert("B = " + vB);
vKa = Math.pow(vB, vKleinA) % vPrimzahl;
alert("K von a = " + vKa);
vKb = Math.pow(vA, vKleinB) % vPrimzahl;
alert("K von b = " + vKb);
}
</script>
</head>
<body>
Primzahl eintragen: <input id="PrimzahlTextfeld" type="text" value="Wert"> <br />
Natürliche Zahl: <input id="NaturZahlTextfeld" type="text" value="Wert"> <br />
geheim: a: <input id="geheimATextfeld" type="text" value="Wert"> <br />
geheim: b: <input id="geheimBTextfeld" type="text" value="Wert"> <br />
<button onClick="SchluesselAustausch();">Geheim</button>
</body>
</html>
Zuletzt bearbeitet: