Hier meine Version in ruby, sie verschlüsselt eingegebenen Text oder Files im Caesarcode, man kann eingeben, um wieviel Buchstaben verschoben werden soll. Der eingegebene Text oder der Text im File sollte in Kleinbuchstaben geschrieben sein, alles andere bleibt wie es ist, und das Ergebnis ist in Großbuchstaben, wie es bei Verschlüsselungen Standard ist.
Code:
class VProg
def initialize(x)
@x = x
end
def to_s
if @x == 1
textv()
elsif @x == 2
dateiv()
else
exit
end
end
private
def textv()
puts "\n\n|-----Caesar-Verschluesselung-----|"
puts "Geben Sie nun den Text in Kleinbuchstaben ein, der verschluesselt werden soll:\n\n"
text1 = gets.chomp
puts "\n\nGeben Sie ein, mit welchem Faktor der Text verschluesselt werden soll:\n\n"
faktor = gets.to_i; text2 = verschluesseln(text1, faktor)
puts text2
end
def dateiv()
puts "\n\n|-----Caesar-Verschluesselung-----|"
puts "Geben Sie nun den kompletten Pfad der Datei an, die verschluesselt werden soll:\n\n"
pfad = gets.chomp
puts "\n\nGeben Sie ein, mit welchem Faktor der Text verschluesselt werden soll:\n\n"
faktor = gets.to_i; file = open(pfad, "r"); text1 = file.read; file.close
text2 = verschluesseln(text1, faktor); file = open(pfad, "w"); file.print "#{text2}"
puts "\n\nDatei verschluesselt.\n\n"
end
def verschluesseln(text1, faktor)
a = ["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"]
b = {"a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5, "f"=>6, "g"=>7, "h"=>8, "i"=>9, "j"=>10, "k"=>11, "l"=>12, "m"=>13, "n"=>14, "o"=>15, "p"=>16, "q"=>17, "r"=>18, "s"=>19, "t"=>20, "u"=>21, "v"=>22, "w"=>23, "x"=>24, "y"=>25, "z"=>26}
text2 = text1.split(""); text1 = ""
text2.each { |part|
if b[part] != nil
text1 += a[(b[part]-1-(26-faktor))]
else
text1 += part
end
}
return text1
end
end
puts "\n\n|--------------Menue--------------|"
puts "(1) Text verschluesseln"
puts "(2) Datei verschluesseln"
puts "(3) Programm beenden\n\n"
x = gets.to_i; vprog = VProg.new(x); vprog.to_s