Caesar-Verschlüsselung
Verfasst: So Sep 03, 2017 12:18 pm
Hi,
ich bin gerade dabei für eine Hausarbeit die Funktion für eine Caesar-Verschlüsselung zu schreiben. Die Caesar-Verschlüsselung funktioniert fogendermaßen: Man hat eine Tabelle mit dem Alphabet (in diesem Fall Groß-und Kleinschreibung und Sonderzeichen). Nun wird ein Text genommen und jeder Buchstabe dieses Textes wird um einen festgelegten Betrag nach rechts verschoben. (Z.B. aus "Test" mit einr Verschiebung von 3 wird : "Whvw")
D.h. ich soll eine Funktion der Form
encrypt <- function(text, verschiebung) {
...
}
erstellen (wobei text der Eingegebene Text ist und verschiebung die Zahl, um die verschoben werden soll), die den Text verschlüsselt und ausgibt.
soweit bin ich im Moment:
encrypt <- function(text, verschiebung) {
vtext <- text
for (i in 1:length(vtext))
{
substr(vtext,i,i) <- vtabelle[i %% 57 + verschiebung]
}
return(vtext)
}
Wenn ich nun encrypt(c("Test"), 3) eingebe, erhalte ich als Ausgabe allerdings: "Dest".
Weiß jemand was mein Fehler ist, bzw. wie ich es korrigieren kann?
Vielen Dank,
Patrick
ich bin gerade dabei für eine Hausarbeit die Funktion für eine Caesar-Verschlüsselung zu schreiben. Die Caesar-Verschlüsselung funktioniert fogendermaßen: Man hat eine Tabelle mit dem Alphabet (in diesem Fall Groß-und Kleinschreibung und Sonderzeichen). Nun wird ein Text genommen und jeder Buchstabe dieses Textes wird um einen festgelegten Betrag nach rechts verschoben. (Z.B. aus "Test" mit einr Verschiebung von 3 wird : "Whvw")
D.h. ich soll eine Funktion der Form
encrypt <- function(text, verschiebung) {
...
}
erstellen (wobei text der Eingegebene Text ist und verschiebung die Zahl, um die verschoben werden soll), die den Text verschlüsselt und ausgibt.
soweit bin ich im Moment:
encrypt <- function(text, verschiebung) {
vtext <- text
for (i in 1:length(vtext))
{
substr(vtext,i,i) <- vtabelle[i %% 57 + verschiebung]
}
return(vtext)
}
Wenn ich nun encrypt(c("Test"), 3) eingebe, erhalte ich als Ausgabe allerdings: "Dest".
Weiß jemand was mein Fehler ist, bzw. wie ich es korrigieren kann?
Vielen Dank,
Patrick