Hallo zusammen,
ich habe erst vor kurzen mit java angefangen. Es geht so leidlich vorwärts. Ich habe ein Programm
geschrieben um M=C^E mod N zu berechnen. Bitte nicht meckern es ist noch etwas durcheinander und nicht optimiert. Ich habe BigInteger wegen der großen Zahlen genommen.Bisher habe ich die Zahlen aus dem File herauskopiert und eingefügt. C und N sind immer Hexzahlen, die vor dem einsetzen in DEZ umgerechnet habe.
Gibt es eine Möglichkeit die Hexwerte aus dem File auszulesen, in DEZ umzurechnen und an die passenden Stellen einzufügen. Zugleich kommt jetzt noch immer das Ergebnis als DEZ -Wert raus. Ich würde gerne das Ergebnis als DEZ und HEX haben. Ich hoffe das man mir hier helfen kann, Danke
ich habe erst vor kurzen mit java angefangen. Es geht so leidlich vorwärts. Ich habe ein Programm
geschrieben um M=C^E mod N zu berechnen. Bitte nicht meckern es ist noch etwas durcheinander und nicht optimiert. Ich habe BigInteger wegen der großen Zahlen genommen.Bisher habe ich die Zahlen aus dem File herauskopiert und eingefügt. C und N sind immer Hexzahlen, die vor dem einsetzen in DEZ umgerechnet habe.
Gibt es eine Möglichkeit die Hexwerte aus dem File auszulesen, in DEZ umzurechnen und an die passenden Stellen einzufügen. Zugleich kommt jetzt noch immer das Ergebnis als DEZ -Wert raus. Ich würde gerne das Ergebnis als DEZ und HEX haben. Ich hoffe das man mir hier helfen kann, Danke
Java:
import java.math.BigInteger;
public class test1 {
BigInteger modexp (BigInteger m, BigInteger e, BigInteger n){
int k=e.bitLength();
BigInteger s = BigInteger.ONE;
for (int i=k-1; i>=0; i--)
{
s=s.multiply(s).mod(n);
if (e.testBit(i))
s=s.multiply(m).mod(n);
}
return s;
}
public BigInteger run(BigInteger n){
//m=C³ mod N
BigInteger a = new BigInteger("-2");
BigInteger three = new BigInteger("9");
BigInteger ergebnis = new BigInteger("0");
BigInteger one = new BigInteger("1");
boolean end = false;
while (end==false){
a = a.add(new BigInteger("-1"));
ergebnis = one.subtract(n.multiply(a)).mod(three);
if (ergebnis == BigInteger.ZERO){
end = true;
}
System.out.println(a);
}
System.out.println(a + " " + one.subtract(n.multiply(a)).divide(three));
return one.subtract(n.multiply(a)).divide(three);
}
//m*-6+3*d= ganze Zahl dann d
public static void main (String args[]){
BigInteger n = new BigInteger("xxxxxxxxxx");
BigInteger c = new BigInteger("xxxxxxxxxxx");
BigInteger e = new BigInteger("x");
// BigInteger m = new BigInteger("xxxxxxxxx");
test1 t = new test1();
System.out.println(t.modexp (c,e,n));
Zuletzt bearbeitet: