# Programm Vigenere-Verschlüsseln # ************************* Prozeduren *************** proc vigenere_verschluesseln {} { global satz global codewort set stelle 0 set codewortstelle 0 set verschluesselter_satz "" set codewort [string toupper $codewort] set laenge [string length $satz] set codewortlaenge [string length $codewort] while {$stelle < $laenge} { set zeichen [string index $satz $stelle] scan $zeichen %c asciizahl set verschluesselungszeichen [string index $codewort $codewortstelle] scan $verschluesselungszeichen %c verschluesselungszahl set verschluesselungszahl [expr $verschluesselungszahl -64] set asciizahl [expr $asciizahl + $verschluesselungszahl] set zeichen [format %c $asciizahl] set verschluesselter_satz $verschluesselter_satz$zeichen set stelle [expr $stelle + 1] set codewortstelle [expr $codewortstelle +1] if {$codewortstelle == $codewortlaenge} { set codewortstelle 0 } } set satz $verschluesselter_satz } proc vigenere_entschluesseln {} { global satz global codewort set stelle 0 set codewortstelle 0 set entschluesselter_satz "" set codewort [string toupper $codewort] set laenge [string length $satz] set codewortlaenge [string length $codewort] while {$stelle < $laenge} { set zeichen [string index $satz $stelle] scan $zeichen %c asciizahl set entschluesselungszeichen [string index $codewort $codewortstelle] scan $entschluesselungszeichen %c entschluesselungszahl set entschluesselungszahl [expr $entschluesselungszahl -64] set asciizahl [expr $asciizahl - $entschluesselungszahl] set zeichen [format %c $asciizahl] set entschluesselter_satz $entschluesselter_satz$zeichen set stelle [expr $stelle + 1] set codewortstelle [expr $codewortstelle +1] if {$codewortstelle == $codewortlaenge} { set codewortstelle 0 } } set satz $entschluesselter_satz } # ************************* Ende der Prozeduren *************** puts \n\n\n\n puts "Ein kleines Programm zur Demonstration der Vigenere-Verschlüsselung" puts "" puts "" puts "Bitte Satz eingeben: " gets stdin satz puts "Bitte Codewort eingeben: " gets stdin codewort puts "Unverschlüsselt: $satz" vigenere_verschluesseln puts "Verschlüsselt: $satz" vigenere_entschluesseln puts "Entschlüsselt: $satz" # Ende des Programmes Vigenere-Verschlüsseln