# JAVA - Verschlüsselung/Entschlüsselung Programm



## Blademanic (3. Mai 2010)

Hallo an alle, ich besuche die 11 BFI (Höhere Berufsfachschule für Informationstechnik) 
Unsere Aufgabe im Fach Anwendungen entwicklen (Programmieren) soll sein, ein Verschlüsselung/Entschlüsselungs Programm zu erstellen. Hab schon etwas angefangen, doch stehe mittlerweile voll auf dem Schlauch.
Hoffe ihr könnt mir ein bisschen helfen und sorry wenn ich vill in eine falsche Kategorie reingeschrieben haben sollte, benutze nicht häufig die Hilfe in Foren

Schonmal Danke im voraus für jede Antwort.


```
import java.io.RandomAccessFile;

import javax.swing.*;

public class Entschlüsselung{

    private static final String Abrechen = null;
	private static char[] ciphers;
	private static char[] bipers;

	
	RandomAccessFile rf = new RandomAccessFile("passwort.txt", "rw");
	String passwort_txt = rf.readLine();
	double ipasswort = Double.parseDouble(passwort_txt);

	public static char[] verschluesseln(char[] zeichen, char[] passwort){
            int k=0;
            for (int j=0; j<zeichen.length; j++){
                zeichen[j] = (char) ( (int)zeichen[j] + (int)passwort[k++] );
                if ( k > j) k=0;
            }
            return zeichen;
        
    }
    
    public static char[] entschluesseln(char[] zeichen, char [] passwort){
    	int k=0;
        for (int j=0; j<zeichen.length; j++){
            zeichen[j] = (char) ( (int)zeichen[j] - (int)passwort[k++] );
            if ( k > j) k=0;
        }
        
        return zeichen;
    }
    
    
    public static void main(String [] args){	
        
        String izeichen, ipasswort;
        izeichen  = JOptionPane.showInputDialog("Einen zu verschlüsselnen Ausdruck, bitte.");
        ipasswort = JOptionPane.showInputDialog("Ein Passwort zur Ver-/Entschlüsselung, bitte.");
         
        char  zeichen[] =  izeichen.toCharArray();
        char passwort[] = ipasswort.toCharArray();
        
        ciphers = verschluesseln( zeichen, passwort );
        System.out.println("verschlüsselter Ausdruck");
      System.out.println(zeichen);
        
        bipers = entschluesseln(zeichen, passwort);
        System.out.println("entschlüsselter Ausdruck");
        System.out.println(zeichen);
    }
}
```


----------



## crackm (3. Mai 2010)

Und was für ein Problem hast du?


----------



## ARadauer (3. Mai 2010)

```
RandomAccessFile rf = new RandomAccessFile("passwort.txt", "rw");
    String passwort_txt = rf.readLine();
    double ipasswort = Double.parseDouble(passwort_txt);
```


```
String izeichen, ipasswort;
```
was soll jetzt ipasswort sein? eine Zahl oder ein String?

Was willst du machen? ein Passwort auf einen String addieren oder die Buchstaben einfach um einen fixen wert verschieben?
Was soll passieren, wenn du über Z hinaus kommst? also was ist Y +D ? soll das C sein?

ps: ausserdem gehört dein einlesen in eine Methode... Konstruktor wär ein guter Platz... aber nicht zu den Variablen Deklerationen...


Java Blog Buch : C) Cäsar Verschlüsselung


----------



## Blademanic (3. Mai 2010)

Okay hab dies schonmal geändert, danke dafür. wie sollte ich denn jetzt am besten vorgehen wenn ich das programm so schreiben möchte, das auch eine (Ent)schlüsselung stattfindet?


```
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

import javax.swing.*;

public class Entschlüsselung{
	
	   private static final String Abrechen = null;
		private static char[] ciphers;
		private static char[] bipers;

	public static char[] verschluesseln(char[] zeichen, char[] passwort){
            int k=0;
            for (int j=0; j<zeichen.length; j++){
                zeichen[j] = (char) ( (int)zeichen[j] + (int)passwort[k++] );
                if ( k > j) k=0;
            }
            return zeichen;
        
    }
    
    public static char[] entschluesseln(char[] zeichen, char [] passwort){
    	int k=0;
        for (int j=0; j<zeichen.length; j++){
            zeichen[j] = (char) ( (int)zeichen[j] - (int)passwort[k++] );
            if ( k > j) k=0;
        }
        
        return zeichen;
    }
    
    
    public static void main(String [] args) throws IOException{	
    	
    	

    		
    		RandomAccessFile rf = new RandomAccessFile("passwort.txt", "rw");
    		String passwort_txt = rf.readLine();
    		
        
        String izeichen, ipasswort;
        izeichen  = JOptionPane.showInputDialog("Einen zu verschlüsselnen Ausdruck, bitte.");
        ipasswort = JOptionPane.showInputDialog("Ein Passwort zur Ver-/Entschlüsselung, bitte.");
         
        char  zeichen[] =  izeichen.toCharArray();
        char passwort[] = ipasswort.toCharArray();
        
        ciphers = verschluesseln( zeichen, passwort );
        System.out.println("verschlüsselter Ausdruck");
      System.out.println(zeichen);
        
        bipers = entschluesseln(zeichen, passwort);
        System.out.println("entschlüsselter Ausdruck");
        System.out.println(zeichen);
    }
}
```


----------



## ARadauer (3. Mai 2010)

ciphers entschlüsseln... nicht den zu verschlüsselden text entschlüsseln...


----------



## Maurice (4. Mai 2010)

Servus.
Wenn ich dich richtig vertsandenhabe möchtest du ein Programm haben, wo ein Bernutzer ein Text eingeben kann und der dann Verschlüsselt werden soll. So eine ähnliche Aufgabe hatte ich letztes Jahr auch. Vielleicht kann dir ja mein kleines Programm weiterhelfen.

Das Programm läuft so ab, das der Benutzer über die Konsole einen Text eingeben soll und anschließend eine Verschlüsselungszahl. Die Zahl ist als verschiebung gedacht gemäs der idee von Caeser.


```
import java.io.*;
import java.util.*;

class MauriceCaeser2{

                private static String[] myAlphabet = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };

                public static void main (String[] args) throws IOException {
                    String eingabe, ausgabe="";
                    int myIndex,a;
                    InputStreamReader eingeben = new InputStreamReader (System.in);
                    BufferedReader eingebenco = new BufferedReader (eingeben);

                   System.out.print("Text zum Verschlüsseln: "); eingabe = eingebenco.readLine();
                   System.out.print("Verschlüsselungszahl: "); myIndex = Integer.parseInt(eingebenco.readLine());
                   System.out.println("Buchstabe A ist" +" = " + myAlphabet[myIndex]);

                   myIndex = myIndex % 26;
                   for(int n = 0; n < eingabe.length(); n++){
                      a = eingabe.charAt(n);
                      if (a > 64 & a < 91)
                         a = a + 32;
                      if (a < 96 || a > 123)
                         ausgabe = ausgabe +(char)(a);
                      else
                          ausgabe = ausgabe +(char)((a+myIndex-97)%26+65);

                    }
                 System.out.println("Verschlueselter Text : " + ausgabe);
               }
  }
```

Ich hoffe ich konnte dir weiterhelfen.


----------

