RSA Applet ohne Cipher

Maxx2332

Mitglied
Moin,

ich habe ein Problem und zwar würde ich gerne ein Applet für eine einfache RSA Verschlüsselung programmieren. Aber halt alles manuell und keine automatisierten Schlüsselpaare. Also man wählt in 2 Comboboxes 2 Primzahlen aus und dann werden die übrigen Schlüssel erzeugt.

So nun kommen wir zum Verschlüsseln, dass funktioniert auch noch.

So sagen wir aus A wird 2730 p= 89 q=47. So das wird im Geheimtextfeld angezeigt. Nun hab ich das Problem das meine Methode nur die 2 entschlüsseln würde dann die 7 usw.

Java:
crypt.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent a) {
                    String klar = KlarT.getText();
                    String geheim = "";
                    for (int i=0; i<klar.length(); i++)
                    {
                     int m = klar.charAt(i);
                     geheim += (int)(Math.pow(m,e)%n);
                    }
                    GeheimT.setText(geheim);
                }});
            add(crypt);
            
            decrypt.setBounds(240, 130, 150, 20);
            decrypt.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent a) {
                    String geheim = GeheimT.getText();
                    String klar = "";
                    for (int i=0; i<geheim.length(); i++)
                    {
                     int m = geheim.charAt(i);
                     klar += (char)(Math.pow(m,d)%n);
                    }
                    
                    KlarT.setText(klar);
                }});
            add(decrypt);

Sind halt Knöpfe die die ganze Berechnung eileiten. So nun die Frage wie sorge ich dafür das er die ganze Zahl nimmt und später wenn es ganze Texte werden?

MfG
 

XHelp

Top Contributor
Um genau zu sein, nimmt er nicht mal 2, 7... sondern 50, 55... Du musst halte nicht mit
Code:
charAt
arbeiten, sondern es so umschreiben, wie du es gerne hättest.
 

Maxx2332

Mitglied
Ja hatte zwischenzeitlich damit gespielt die Nummern wieder in Buchstaben zuwandeln.

Wie lautet denn zum Beispiel ein Befehl um den Buchstaben/Zahl an einer bestimmten Stelle des Textes abzufragen?

geht das mit text.indexOf()?
 
S

Spacerat

Gast
Ich fürchte, deine Verschlüsselung scheitert selbst schon bei 8 Bit-Schlüsseln.
Z.B.:

e = 23
d = 47
N = 143
k = 41 ('A')

[c]Math.pow(41, 23) % 143[/c] ergibt zwar 63 (statt 72), aber hast du auch mal die Gegenrechnung nachvollzogen? [c]Math.pow(63, 47) % 143[/c] ergibt nämlich 11 statt 41. Könnte evtl. daran liegen, dass die pow-Ergebnisse zuweilen kaum in ein int passen.
 
Zuletzt bearbeitet von einem Moderator:

Maxx2332

Mitglied
Also muss ich wohl auf BigInteger wechseln und danke für den substring-Befehl.

So bin jetzt dabei alles auf BigInteger zu setzen nur ein Problem.

Java:
public void actionPerformed(ActionEvent a) {
                  int hn = ((((Integer)pZ.getSelectedItem()))*(((Integer)qZ.getSelectedItem()))); //hier
                  n = (BigInteger)hn; //hier
                  nt.setText(Integer.toString(n));
                  int pq1ti = (((Integer)pZ.getSelectedItem()-1)*(((Integer)qZ.getSelectedItem())-1));
                  pq1t.setText(Integer.toString(pq1ti));
                  e = eBestimmen(pq1ti);
                  et.setText(Integer.toString(e));
                  d = dBestimmen(pq1ti,e);
                  dt.setText(Integer.toString(d));
                  pubK.setText("Public Key:   "+e+", "+n);
                  priK.setText("Private Key:  "+d+", "+n);
                }
                });

Die Zeilen machen jetzt richtig Schwiriegkeiten. Ich kann irgendwie nicht aus dem Integer Wert einen Integerwert machen. Vorher war es nur eine Zeile.

Wie caste ich Integer in BigInteger oder ein Object in ein BigInteger?
 

Maxx2332

Mitglied
Ich bin ja in der API unterwegs nur da dort keine Befehle stehen dachte ich mir ich frage einfach. Da bei mir aus Comboboxen Werte ausgewählt werden muss ich ja mit dennen rechnen.

Es muss doch eine möglichkeit geben, dass ich die Integerwerte in einen BigIntegerwert bekomme. Oder alles BigInteger habe und dann das Object aus der Combobox in einen BigInteger kriege.
 

XHelp

Top Contributor
In API muss man nicht unterwegs sein, sondern diese auch lesen ;)
z.B. [JAPI]BigInteger#valueOf(long)[/JAPI]. Oder sich die Konstruktoren anschauen.
 

Maxx2332

Mitglied
Irgendwie war ich in einer deutlich älteren api unterwegs und da gab es die Befehle nicht.

So dann kommt jetzt die letze hürde

Java:
crypt.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent a) {
                    String klar = KlarT.getText();
                    String geheim = "";
                    for (int i=0; i<klar.length(); i++)
                    {
                     
                     m = m.valueOf((long)klar.charAt(i));
                     geheim += (m.modPow(e,n)+" "); //Block entstehung
                    }
                    GeheimT.setText(geheim);
                }});
            add(crypt);
            
            decrypt.setBounds(240, 130, 150, 20);
            decrypt.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent a) {
                    String geheim = GeheimT.getText();
                    String klar = "";
                    String block = "";
                    for (int i=0; geheim.substring(i,i) != null; i++)
                    {
                     for(int y=0; geheim.substring(y,y) != " ";y++)
                     {
                      block += geheim.substring(y,y);
                     }
                     m = m.valueOf(Long.valueOf(block));
                     klar += (m.modPow(e,n));
                    }
                    KlarT.setText(klar);
                    
                }});

Der Teil wo es verschlüsselt ist meine ich ohne große Fehler. Nun aber der entschlüssel Teil funktioniert gar nicht.

Die erste Bedingung in der For-Schleife soll halt dafür sorgen sagen wir wir haben den Block
2472' ' dann sollte die 6te Stelle doch den Wert null haben oder?

Dann weiter !=" " soll Leerzeichen filtern so das in block wirklich 2472 steht und dann erst die Formel angewandt wird.

Wo ist der Fehler?
 
S

Spacerat

Gast
Diese subString-Methode nutzt dir so überhaupt nichts. Ausserdem entschlüsselst du auch wieder mit e. Die charAt-Methode hätte es aber bereits bringen müssen. Möglicherweise lässt sich der Schlüsseltext auch nicht mehr als String darstellen, da für das Standardencoding ungültige (nicht darstellbare) Zeichen entstehen können. In diesem Fall müsste (das eigentlich der Normalfall) der Klartext in eine Bytefolge und diese evtl. per Base32, -64 oder -128 encodiert werden. Beim Entschlüsseln muss dieses Encoding natürlich auch wieder beachtet werden.
 

Maxx2332

Mitglied
Hab Substring nun so geändert das es immer (x-1),(x+1) ist also sollte so doch genau der Buchstabe an der Stelle X gewählt sein.

Dann hab ich e durch d getauscht dummer Fehler.

Dann versteh ich nicht ganz was du mit dem letzten Teil deiner Antwort meinst.
Aus 2742 wird ja wieder ich sag mal 65 und das sollte doch als String darstellbar sein.
 
S

Spacerat

Gast
Ach so machst du das... du schreibst die Ergebnisse als Zahlen gefolgt von einem Leerzeichen in den String. Okay... :oops:
Dann versuch's mal so:
Java:
public void actionPerformed(ActionEvent a) {
  String[] geheim = GeheimT.getText().split(" ");
  String klar = "";
  for(int i=0; i < geheim.length; i++)
  {
    m = new BigInteger(geheim[i]);
    klar += (m.modPow(d,n));
  }
  KlarT.setText(klar);
}
 

Maxx2332

Mitglied
Funktioniert so einwandfrei. Danke umwandlung wieder in Buchstaben ging auch ganz schnell.

Nur wenn du mir noch beantworten könntest warum meine Version nicht ging wäre ich dir sehr dankbar.

Und ja mit dem Leerzeichen, dass mach ich, weil es nur eine stark vereinfachte Darstellung ist.
 
S

Spacerat

Gast
Nur wenn du mir noch beantworten könntest warum meine Version nicht ging wäre ich dir sehr dankbar.
... substring(x, x) bzw. in deinem Fall substring(y, y) oder substring(i, i) liefert stets einen Leerstring. Bei dir werden i und y irgendwann grösser als die länge der Strings und das ergibt in beiden Fällen eine Exception (StringIndexOutOfBoundsException).
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
G Applet ohne sonstiges Java Basics - Anfänger-Themen 4
D Java Applet ohne ActiveX im IE ? Java Basics - Anfänger-Themen 15
Dilandau button direkt in applet hängen (ohne panel) Java Basics - Anfänger-Themen 2
M Java-Applet zur Mittelwertberechnung Java Basics - Anfänger-Themen 3
D Java Applet wird nicht im Browser angezeigt Java Basics - Anfänger-Themen 6
M bestehendes Projekt als Applet speichern Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
A Applet Plot für atan erstellen Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
K JDK installieren displays java applet für MAC Java Basics - Anfänger-Themen 10
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
S Klassen Applet extern aufrufen Java Basics - Anfänger-Themen 1
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
C Applet Probleme Java Basics - Anfänger-Themen 1
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
G Applet in ein JSP einbinden Java Basics - Anfänger-Themen 1
C Java-Applet Fehler "NoClassDefFoundError"? Java Basics - Anfänger-Themen 1
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
J JavaScript findet Applet Methode nicht Java Basics - Anfänger-Themen 2
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
K Applet funz. im Browser nicht Java Basics - Anfänger-Themen 11
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
thet1983 Erste Schritte <param> Tag in Applet Java Basics - Anfänger-Themen 4
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
G Signiertes Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 1
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
K Frage zu Applet Java Basics - Anfänger-Themen 3
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
P Applet Histogramm Java Basics - Anfänger-Themen 6
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
S Applet findet Klasse nicht Java Basics - Anfänger-Themen 7
R Java Applet mit Mausklick ansprechen Java Basics - Anfänger-Themen 3
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
S Applet-Objekt ist vor dem Hintergrund Java Basics - Anfänger-Themen 11
F Problem mit Applet Java Basics - Anfänger-Themen 5
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
S Applet Deployment Java Basics - Anfänger-Themen 2
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
H Applet - main()-Methode Java Basics - Anfänger-Themen 4
K Applet wird nicht im Browser und Appletviewer angezeigt Java Basics - Anfänger-Themen 5
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
H Klassen in Eclipse stellt es im Ausgabe-Applet nicht dar Java Basics - Anfänger-Themen 5
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
D Applet beenden Java Basics - Anfänger-Themen 7
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
S Methode in Applet starten Java Basics - Anfänger-Themen 2
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
W Probleme mit Java Applet Java Basics - Anfänger-Themen 5
M Applet kann in Browser nicht ausgeführt werden Java Basics - Anfänger-Themen 4
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
Z Applet startet nicht bei Domain mit Umlaut Java Basics - Anfänger-Themen 2
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
Helgon ClassNotFound Applet Java Basics - Anfänger-Themen 6
U Applet Signiert und trotzdem Fehlermeldung Java Basics - Anfänger-Themen 18
E Schach in Java-Applet <No main classes found> Java Basics - Anfänger-Themen 5
S Applet Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
E Applet wird nicht angezeigt Java Basics - Anfänger-Themen 11
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
B Applet - Laden eines Java-Fensters bricht ab Java Basics - Anfänger-Themen 6
N Import Problem, Applet will nicht Java Basics - Anfänger-Themen 6
M Applet Eclipse Vollbild Java Basics - Anfänger-Themen 3
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
I Java Applet Java Basics - Anfänger-Themen 8
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
L Referenced Libraries korrekt in Java Applet einbinden.. Java Basics - Anfänger-Themen 2
KBJ Java Applet Gästebuch Java Basics - Anfänger-Themen 12
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
U Applet wird nicht angezeigt Java Basics - Anfänger-Themen 2
J J-Applet, Frage Java Basics - Anfänger-Themen 19
J Applet farblich gestalten Java Basics - Anfänger-Themen 5
M Applet lokaler Festplattenzugriff Java Basics - Anfänger-Themen 25
X Applet - Client/Server Java Basics - Anfänger-Themen 2
M Applet ist nur graues Feld Java Basics - Anfänger-Themen 12
O webserver für Applet und php Java Basics - Anfänger-Themen 7
J Fehlermeldung: Applet nicht initialisiert Java Basics - Anfänger-Themen 24
C Java Applet Probleme Java Basics - Anfänger-Themen 4
S Probleme mit Java 3D Tutorial (Applet) Java Basics - Anfänger-Themen 7
S Input/Output Problem mit dateizugriff innerhalb der .jar (Applet) Java Basics - Anfänger-Themen 2
M Applet + BilderDownload Java Basics - Anfänger-Themen 36
O Applet Wetterticker Java Basics - Anfänger-Themen 17
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Bild in Applet darstellen Java Basics - Anfänger-Themen 6
W Applet funktiniert nur in Eclipse Java Basics - Anfänger-Themen 2
S Erste Schritte Machbarkeit: Applet oder GUI-Applikation? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben