Hallo
ich habe mich mal an eine Vigenere Verschlüsselung gemacht. Hier erstmal die beiden Methoden zum Ver bzw Entschlüsseln
Die Verschlüsselung funktioniert einwandfrei. Bei der Entschlüsselung gibt es allerdings noch probleme undzwar funktioniert die am Anfang sehr gut nur nach ner Zeit macht Sie nurnoch unsinn. Ich habe es mal mit den folgenden Text probiert.
Schlüssel: test
Der Text ist richtig verschlüsselt worden. Dies geschar mit einem anderen Programm. Ich bekomme den Text nur bis zur hälfte richtig entschlüsselt mit meinen Programm ich finde leider auch nicht den Fehler habe mir auch schon die zwischenschritte ausgeben lassen allerdings ohne erfolg. Würde mich freuen wenn einer eine lösung findet.
//EDIT: Hab festgestellt das sobald ein ß vorkommt er danach nicht mehr zurecht kommt. Kennt da einer ne Lösung das zu beheben hab da leder nichts hinbekommen
Gruß
Lazybone[/code]
ich habe mich mal an eine Vigenere Verschlüsselung gemacht. Hier erstmal die beiden Methoden zum Ver bzw Entschlüsseln
Code:
public static String code(String NText, String code) {
StringBuilder ctext = new StringBuilder();
for(int i = 0, a = 0; i < NText.length(); i++) {
char key = code.toUpperCase().charAt(a%code.length());
char aCh = NText.toUpperCase().charAt(i);
char nCh = ' ';
if(aCh >= 65 && aCh <= 90) {
nCh = (char)(aCh - 65 + key);
if((int)nCh > 90){
nCh -= 26;
}
if(NText.charAt(i) >= 97){
nCh += 32;
}
ctext.append(nCh);
a++;
}else{
ctext.append(aCh);
}
}
return ctext.toString();
}
public static String decode(String NText, String code) {
StringBuilder ctext = new StringBuilder();
StringBuilder btext = new StringBuilder();
for(int i = 0, a = 0, b = 0; i < NText.length(); i++) {
char key = code.toUpperCase().charAt(a%code.length());
char aCh = NText.charAt(i);
char nCh = ' ';
if(aCh >= 65 && aCh <= 90) {
aCh = NText.toUpperCase().charAt(i);
nCh = (char)(aCh + 65 - key);
if((int)nCh < 65){
nCh += 26;
}
if(NText.charAt(i) >= 97){
nCh += 32;
}
ctext.append(nCh);
a++;
}else if(aCh >= 97 && aCh <= 122){
aCh = NText.toUpperCase().charAt(i);
nCh = (char)(aCh + 97 - key);
if((int)nCh < 97){
nCh += 26;
}
ctext.append(nCh);
a++;
}else{
ctext.append(NText.charAt(i));
}
}
return ctext.toString();
}
Die Verschlüsselung funktioniert einwandfrei. Bei der Entschlüsselung gibt es allerdings noch probleme undzwar funktioniert die am Anfang sehr gut nur nach ner Zeit macht Sie nurnoch unsinn. Ich habe es mal mit den folgenden Text probiert.
Code:
CrypTool ist ein Programm, mit dessen Hilfe Sie kryptografische Verfahren anwenden und
analysieren können. So können Sie neue Dokumente erstellen und bestehende Dokumente
öffnen und weiter bearbeiten.
Ein Dokument kann mittels verschiedener Verschlüsselungsverfahren ver- und entschlüsselt
werden. Es stehen sowohl klassische (zum Beispiel das Caesar-Verschlüsselungsverfahren)
als auch moderne Verschlüsselungsverfahren (beispielsweise das RSA- und das DES-Verfahren
sowie auf elliptischen Kurven basierende Verfahren) zur Verfügung. Eine Übersicht über alle
Verschlüsselungsverfahren in CrypTool findet man auf der Hilfeseite zum Menü
Ver-/Entschlüsseln.
Außerdem kann CrypTool von einem Dokument Hashwerte berechnen (siehe Menü Hashwerte).
Für die klassischen Verschlüsselungsverfahren stehen automatische Analysen zur Verfügung,
die Sie in die Lage versetzen, mit Kenntnis des verschlüsselten Dokuments und eventuell
weiterer Informationen (unverschlüsseltes Dokument oder Sprache des Dokuments) den
Schlüssel zu ermitteln. Für weitere Informationen zur automatischen Analyse gehen Sie zur
Hilfe für das Menü Analyse und wählen dort das zu analysierende Verschlüsselungsverfahren.
Zur Unterstützung der eigenen Analyse von Dokumenten kann CrypTool von einem Dokument
das Histogramm anzeigen und die Entropie und Autokorrelation berechnen.
Ferner gibt es in CrypTool die Möglichkeit, Dateien zu packen oder entpacken (ZIP).
Code:
VvqiMsge bwl xbr Hkhkjtfq, ebm hwllif Abpxx Lmw dkchmhkjtymkvai Nxkjsakif tgawgwif ngh
sgtpqlbijxg oöfgxr. Kh dörfxg Wax gimx Wscnfifmx ijlmidexr mgw fwlmizxghw Whomfxrlx
öyjfxg yfw piamxv txtvtxbxwg.
Xmf Whomfxrl dtrf fbxlxew nxkwuabivxgij Oxvkvapüklxpmgzwnxkjsakif oxv- mgw ifmlgzeülwwem
awkwif. Xl wlxaif lhagae odtlwalvlw (snq Txbwhbxp vtl Gsxlej-Oxvkvapüklxpmgzwnxkjsakif)
tew snvl ehwijgx Zwklgzeülwwenryloijytljxg (fwbltaxewoxbww wtw JLT- yfw wek WXW-Nxkjsakif
lhaax tyx xepaimmkvaif Dnvnxg fslbijxghw Oxvxtavwg) syj Oxvxüznry. Xbrw Üuxvkbvll üuxv seei
Nxkwuaeüwkxeyfzlzwkyezkxr ag VvqiMsge ymfwxx etg emy wij Abpxxliamx dmf Fifü
Oxv-/Wgmwuaeüwkxer.
Snßxvvxf osgg GjriXghe zgg xmfxf Hgdnqwgm Lslaawkmi txkiuagif (lbizx Fifü Atwzpxvlx).
Yüv vbx odtlwalvlwg Oijlvldüllidngkkoxvxtavwg lxwaxr snmsetmmkvai Sgtpqlxr rnk Zwkyükmgz,
hax Lmw bg hax Eeyx oijlxxrxg, qam Difgmral wik oxvkvapüklxplxg Hgdnqwgmw mgw inxgxmxep
oxbxwkxv Agysjftxahgif (ngzwklgzeülwwemik Whomfxrl hwij Livsvai vxl Hgdnqwgmw) vxg
Wuaeüwkxe dm xkqammidg. Yüv oxbxwkx Mfyhvetmmggxr rnk emmhqsmbwuaxr Sgtpqlx kwaxr Kbx dmk
Amdyx jüj wtw Exgü Efteckx nrv päapwg wsjm wek sn efteckbxvwgwi Nxkwuaeüwkxeyfzlzwkyezkxr.
Rnk Yfmxvkmümdmgz hwk xmyxgif Tgedrli nhg Hgdnqwgmif dtrf VkchMhsd ohr wbgie Whomfxrl
wtw Zblxgzkeef trrxbkwg nrv wbi Wgmvgibi mgw Emmhogkkidtmmgg uijxvlfxg.
Jwkgij zbfl xl mf VkchMhsd wbi Eözemuadiam, Welxbif sn tsvdif hwij xgxhtvowg (SMH).
Schlüssel: test
Der Text ist richtig verschlüsselt worden. Dies geschar mit einem anderen Programm. Ich bekomme den Text nur bis zur hälfte richtig entschlüsselt mit meinen Programm ich finde leider auch nicht den Fehler habe mir auch schon die zwischenschritte ausgeben lassen allerdings ohne erfolg. Würde mich freuen wenn einer eine lösung findet.
//EDIT: Hab festgestellt das sobald ein ß vorkommt er danach nicht mehr zurecht kommt. Kennt da einer ne Lösung das zu beheben hab da leder nichts hinbekommen
Gruß
Lazybone[/code]