| Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann. |
Diskussion: kleines Verschlüsselungsprogramm im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Der Vorschlag für diese Aufgabe kam von Phuket: Aufgabe ist es ein kleines Verschlüsselugsprogramm zu coden, das einfache Verschlüsselungsalgorithmen wie ...
![]() |
| | #1 (permalink) |
| Registriert seit: 02.10.01 ![]() Likes: 0 | Der Vorschlag für diese Aufgabe kam von Phuket: Aufgabe ist es ein kleines Verschlüsselugsprogramm zu coden, das einfache Verschlüsselungsalgorithmen wie den Caesarcode und Vigenere unterstützt. Um es etwas umfangreicher zu machen wäre es nett wenn das Programm auch Dateien verschlüsseln kann. Viel Spaß Nornagest Caesar: Jeder Buchstabe wird um eine bestimmte Anzahl von Stellen im Alphabet verschoben. Für Schlüssel 3 wird aus A ein D. Vigenere: http://de.wikipedia.org/wiki/Polyalp...e_Substitution |
| | |
| | #2 (permalink) |
| Registriert seit: 20.07.04 ![]() Likes: 0 | Meine erste Perl Version beherscht momentan nur Caesar Ver und Entschlüsselung. Problem hab ich momentan nur mit dnyamischen Verschiebungswerten. Über den tr Operator lässt sich das nicht erledigen also muss ich mir was anderes einfallen lassen. Version wird dann nachgereicht. Alle Text basierenden Datei Typen werden eigentlich verschlüsselt hoffe ich ![]() Code: |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Ich will echt kein Spielverderber sein, aber ich hab noch Hausaufgaben auf und bin müde also mach ich das ganze für Delphi mal verbal: Entweder (die Dumme Variante) ne Gigantische Case of Anweisung auf nen Button packen, oder (die klügere Variante) über den Ord Befehl jeden Buchstaben um x Stellen verrücken. Morgen liefe ich evtl nen Quellcode, hab jetzt aber wie gesagt keine Zeit das abzutippen. Case of geht übrigens sowohl für Casesar als auch Vigenere. Edit: Okay, ord wird problematisch mit Buchstaben wie X Y oder Z wenn der Schlüssel > 3 wird. Dafür müsst man da noch ne If Klausel setzen. | |
| | |
| | #4 (permalink) |
| Registriert seit: 30.11.04 ![]() Likes: 0 | Tach Leute. Hab mal ein Prog bzw. die nötigen Funktionen in VB Geschrieben: Wenn bei den Funktionen "Verschlüsseln"==False, wird entschlüsselt. Einfach in ein Modul Packen: Code: Option Explicit
Function Vigenere(ByVal Text As String, ByVal Schlüssel As String, ByVal Verschlüsseln As Boolean)
Dim Zahl1 As Double
Dim Zahl As Double
Dim NeuerText As String
Dim Zeichen As Integer
Dim NZeichen As String
For Zahl1 = Len(Schlüssel) To Len(Text)
Schlüssel = Schlüssel & Schlüssel
If Len(Schlüssel) > Len(Text) Then
Schlüssel = Mid(Schlüssel, 1, Len(Text))
End If
Next Zahl1
For Zahl = 1 To Len(Text)
Zeichen = Asc(Mid(Text, Zahl, 1))
If Zeichen > 64 Then
If Zeichen < 91 Then
If Verschlüsseln = True Then
Zeichen = Zeichen + (Asc(Mid(Schlüssel, Zahl, 1)) - 64)
Else
Zeichen = Zeichen - (Asc(Mid(Schlüssel, Zahl, 1)) - 64)
End If
If Zeichen < 65 Then
Zeichen = Zeichen + 26
ElseIf Zeichen > 90 Then
Zeichen = Zeichen - 26
End If
End If
End If
NZeichen = Chr(Zeichen)
NeuerText = NeuerText & NZeichen
Next Zahl
Vigenere = NeuerText
End Function
Function Caesar(ByVal Text As String, ByVal Schlüssel As Integer, ByVal Verschlüsseln As Boolean)
Dim Zahl As Double
Dim NeuerText As String
Dim Zeichen As Integer
Dim NZeichen As String
NeuerText = ""
For Zahl = 1 To Len(Text)
Zeichen = Asc(Mid(Text, Zahl, 1))
If Zeichen > 64 Then
If Zeichen < 91 Then
If Verschlüsseln = True Then
Zeichen = Zeichen + Schlüssel
Else
Zeichen = Zeichen - Schlüssel
End If
If Zeichen < 65 Then
Zeichen = Zeichen + 26
ElseIf Zeichen > 90 Then
Zeichen = Zeichen - 26
End If
End If
End If
NZeichen = Chr(Zeichen)
NeuerText = NeuerText & NZeichen
Next Zahl
Caesar = NeuerText
End Function |
| | |
| | #5 (permalink) |
| Registriert seit: 03.12.04 ![]() Likes: 0 | Ich hab die Caesar-Chiffre für Windows in Java programmiert. Ver- und Entschlüsselung eines kurzen Textes ist möglich. Hier ist mein Code: Code: /*
* @author: Boar
*
* Ver- und Entschlüsselung eines Strings mit der Caesar-Chiffre
*
* (c) 17.11.2004
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Caesar extends JFrame implements ActionListener
{
String text;
String convText;
int[] alphabet = new int[26];
boolean added = false;
int temp=0;
JPanel up = new JPanel();
JLabel in = new JLabel("Text-Eingabe: ",JLabel.LEFT);
JTextField eingabe = new JTextField(20);
JPanel middle1 = new JPanel();
JLabel info = new JLabel ("Schlüssel: ");
JTextField schl = new JTextField(2);
JPanel middle2 = new JPanel();
JButton verschl = new JButton("Verschlüsseln");
JButton entschl = new JButton("Entschlüsseln");
JPanel down = new JPanel();
JLabel out = new JLabel("Konvertierte Ausgabe: ");
JTextField ausgabe = new JTextField(20);
public Caesar()
{
for (int i=0; i<26; i++)
alphabet[i]='A'+i;
this.setTitle("Caesar-Chiffre");
this.setSize(370,180);
this.setResizable(false);
ausgabe.setEditable(false);
up.setLayout(new FlowLayout(FlowLayout.LEFT));
up.add(in);
up.add(eingabe);
middle1.setLayout(new FlowLayout(FlowLayout.CENTER));
middle1.add(info);
middle1.add(schl);
middle1.add(verschl);
middle1.add(entschl);
down.setLayout(new FlowLayout(FlowLayout.LEFT));
down.add(out);
down.add(ausgabe);
getContentPane().setLayout(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
getContentPane().add(up);
getContentPane().add(middle1);
getContentPane().add(down);
verschl.addActionListener(this);
entschl.addActionListener(this);
verschl.setActionCommand("ver");
entschl.setActionCommand("ent");
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("ver"))
{
ausgabe.setText("");
convText=" ";
text = eingabe.getText().toUpperCase().trim();
for(int i=0; i<text.length(); i++)
{
added=false;
for(int j=0; j<26; j++)
{
if(text.charAt(i)==(char)alphabet[j]&& !schl.getText().equals(""))
{
temp=text.charAt(i);
if(temp+Integer.parseInt(schl.getText())>90)
temp+=(Integer.parseInt(schl.getText())-26);
else
temp+=Integer.parseInt(schl.getText());
convText+=(char)temp;
added=true;
}
else if(added==false&&j==25&&!schl.getText().equals(""))
convText=" ERROR: Keine Sonderzeichen!";
else if(added==false&&j==25&&schl.getText().equals(""))
convText=" ERROR: Kein Schlüssel angegeben!";
ausgabe.setText(""+convText);
}
}
}
else if(e.getActionCommand().equals("ent"))
{
ausgabe.setText("");
convText=" ";
text = eingabe.getText().toUpperCase().trim();
for(int i=0; i<text.length(); i++)
{
added=false;
for(int j=0; j<26; j++)
{
if(text.charAt(i)==(char)alphabet[j]&& !schl.getText().equals(""))
{
temp=text.charAt(i);
if(temp-Integer.parseInt(schl.getText())<65)
temp=temp+26-Integer.parseInt(schl.getText());
else
temp-=Integer.parseInt(schl.getText());
convText+=(char)temp;
added=true;
}
else if(added==false&&j==25&&!schl.getText().equals(""))
convText=" ERROR: Keine Sonderzeichen!";
else if(added==false&&j==25&&schl.getText().equals(""))
convText=" ERROR: Kein Schlüssel angegeben!";
ausgabe.setText(""+convText);
}
}
}
}
public static void main(String[] args)
{
Caesar chiffre = new Caesar();
WindowQuitter wquit = new WindowQuitter();
chiffre.addWindowListener( wquit );
chiffre.setVisible(true);
}
}
class WindowQuitter extends WindowAdapter
{
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
} |
| | |
| | #6 (permalink) |
| Registriert seit: 10.09.04 ![]() Likes: 0 | Den Code eines recht guten Verschlüsselungsprogramms findet ihr hier: http://www.volkard.de/vcppkold/caesa...vorschlag.html MfG Fat Tony |
| | |
| | #7 (permalink) |
| ...allerdings sollte man mit eigenen Verschlüsselungsprogrammen aufpassen. Wenn irgendwo genutzt und auffällt then knast; weil man es dem BSI melden muss | |
| | |
| | #8 (permalink) |
| Registriert seit: 30.11.04 ![]() Likes: 0 | Eine Derartige Pflicht besteht nur in den USA. (ob in anderen Ländern auch, weis ich nicht. Aber eindeutig nicht in Deutschland) mfg LittleSpike |
| | |
| | #10 (permalink) |
| Kleine Info zu einer Anwendung der Verschlüsselung: Kennt jemand den Film "2001: Odysee im Weltram" ? Der Boardcomputer des Raumschiffs in dem der Film Spielt hört auf den Namen "HAL". Wenn man jetzt hergeht und die Buchstaben mit dem Schlüssel 1 verschiebt kommt "IBM" raus. Kewl oder!? ![]() Der Computer wird als absolut Fehlerfrei beschrieben. Zitat: "Computer der HAL 9000 Serie haben noch nie einen Fehler gemacht. Sie sind absolut Perfekt. Am Ende dreht der Computer durch und bringt alle um, ergo werden die IBM computer alle durchdrehen und uns alle umbringen | |
| | |
| | #11 (permalink) | |
| Registriert seit: 30.11.04 ![]() Likes: 0 | Zitat:
Schlüssel 1 (A) | |
| | |
| | #12 (permalink) |
| ich will ja nicht dreist sein, aber das nicht zufällig noch jemand in c++ ?? | |
| | |
| | #15 (permalink) |
| Registriert seit: 09.03.04 ![]() Likes: 0 | Ich hab mal was in Python gemacht. Man kann allerdings keine Zeichen benutzen, die bei einer ASCII-Tabelle einen höheren Dezimalwert als 127 haben benutzen. Irgendwie ist das etwas Tkinter-spezifisches beim Text() Widget (oder bloss bei mir?). ?( Falls jemand weiss wie man das hinbekommt, bitte sagen! Hier der Code Edit: Hab grad gesehen, dass dieser Code auf Windows nicht (jedenfalls das ändern der Sprache) ob's bei Linux klappt, weiss ich nicht... |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Neues Verschlüsselungsprogramm (selbst gecodet) | Tec | Cryptography & Encryption | 101 | 20.07.07 11:37 |
| Verschlüsselungsprogramm | Until-Death | Code Kitchen | 5 | 01.07.07 13:34 |
| Verschlüsselungsprogramm | antcool | Cryptography & Encryption | 14 | 21.10.05 16:31 |
| Bestes Verschlüsselungsprogramm | spyro133 | Cryptography & Encryption | 2 | 20.06.05 08:09 |
| Verschlüsselungsprogramm | Avenger | Cryptography & Encryption | 5 | 22.11.04 21:59 |