Vigenère-Verfahren in Ruby:
def vigenereverschluesseln(satz, codewort) buchstabe = "" asciizahl = 0 stelle = 0 codestelle = 0 verschluesselter_satz = "" while stelle < satz.length buchstabe = satz[stelle] codebuchstabe = codewort[codestelle] asciizahl = buchstabe.ord codeasciizahl = codebuchstabe.ord - 64 asciizahl = asciizahl + codeasciizahl buchstabe = asciizahl.chr verschluesselter_satz = verschluesselter_satz + buchstabe stelle = stelle + 1 codestelle = codestelle + 1 if codestelle == codewort.length then codestelle = 0 end end return verschluesselter_satz end def vigenereentschluesseln(satz, codewort) stelle = 0 codestelle = 0 entschluesselter_satz = "" while stelle < satz.length buchstabe = satz[stelle] asciizahl = buchstabe.ord codebuchstabe = codewort[codestelle] asciizahl = buchstabe.ord codeasciizahl = codebuchstabe.ord - 64 asciizahl = asciizahl - codeasciizahl buchstabe = asciizahl.chr entschluesselter_satz = entschluesselter_satz + buchstabe stelle = stelle + 1 codestelle = codestelle + 1 if codestelle == codewort.length then codestelle = 0 end end return entschluesselter_satz end puts "-----------------------------------" puts "Ein kleines Programm zur Demonstra-" puts "tion der Vigenere-Verschlüsselung" puts "-----------------------------------" puts "Bitte den Satz eingeben: " satz = gets.chomp puts "Bitte das Codewort eingeben: " codewort = gets.chomp puts "Unverschluesselt: #{satz}" satz = vigenereverschluesseln(satz,codewort) puts "Verschluesselt: #{satz}" satz = vigenereentschluesseln(satz,codewort) puts "Entschluesselt: #{satz}"
Vigenère-Verfahren in Ruby:
def vigenereverschluesseln(satz, codewort) buchstabe = "" asciizahl = 0 stelle = 0 codestelle = 0 verschluesselter_satz = "" while stelle < satz.length buchstabe = satz[stelle] codebuchstabe = codewort[codestelle] asciizahl = buchstabe.ord codeasciizahl = codebuchstabe.ord - 64 asciizahl = asciizahl + codeasciizahl buchstabe = asciizahl.chr verschluesselter_satz = verschluesselter_satz + buchstabe stelle = stelle + 1 codestelle = codestelle + 1 if codestelle == codewort.length then codestelle = 0 end end return verschluesselter_satz end def vigenereentschluesseln(satz, codewort) stelle = 0 codestelle = 0 entschluesselter_satz = "" while stelle < satz.length buchstabe = satz[stelle] asciizahl = buchstabe.ord codebuchstabe = codewort[codestelle] asciizahl = buchstabe.ord codeasciizahl = codebuchstabe.ord - 64 asciizahl = asciizahl - codeasciizahl buchstabe = asciizahl.chr entschluesselter_satz = entschluesselter_satz + buchstabe stelle = stelle + 1 codestelle = codestelle + 1 if codestelle == codewort.length then codestelle = 0 end end return entschluesselter_satz end puts "-------------------------------------------------------------------" puts "\n\n\n\n" puts "Ein kleines Programm zur Demonstration der Vigenere-Verschlüsselung" puts "Bitte den Satz eingeben: " satz = gets.chomp puts "Bitte das Codewort eingeben: " codewort = gets.chomp puts "Unverschluesselt: #{satz}" satz = vigenereverschluesseln(satz, codewort) puts "Verschluesselt: #{satz}" satz = vigenereentschluesseln(satz, codewort) puts "Entschluesselt: #{satz}"