Arno Pasternak: Kryptograhie Mit diesem Programm können die Schüler das Vigenere-Verfahren austesten. 0010 //VIGENERE-Verschluesselungssystem 0020 // 0030 REPEAT 0040 PRINT "Satz eingeben: 1" 0050 PRINT "Satz ausgeben: 2" 0060 PRINT "Satz laden : 3" 0070 PRINT "Satz speichern: 4" 0080 PRINT "Satz verschlüsseln: 5" 0090 PRINT "Satz entschlüsseln: 6" 0100 PRINT "Meldungen: 7" 0101 PRINT "codewort: 8" 0110 PRINT "Ende: 9" 0120 PRINT 0121 PRINT 0130 PRINT "Eingabe" 0140 INPUT wahl 0150 IF wahl=1 THEN satzeingabe 0160 IF wahl=2 THEN satzausgabe 0170 IF wahl=3 THEN satzladen 0180 IF wahl=4 THEN satzspeichern 0190 IF wahl=5 THEN vigenere_verschlüsseln 0200 IF wahl=6 THEN vigenere_entschlüsseln 0210 IF wahl=7 THEN meldungen 0211 IF wahl=8 THEN codewort_eingeben 0220 UNTIL wahl=9 0230 // 0240 // 0250 // Beginn des Prozedur-Teiles 0260 // 0270 PROC satzeingabe 0280 PRINT "Bitte Satz eingeben:" 0290 INPUT satz$ 0300 ENDPROC satzeingabe 0310 // 0320 PROC satzausgabe 0330 PRINT "Der aktuell Satz lautet: ",satz$ 0340 ENDPROC satzausgabe 0350 // 0360 PROC satzladen 0370 PRINT "Aus welcher Datei soll geladen werden?" 0380 INPUT datei$ 0390 SELECT INPUT "f:"+datei$ 0400 INPUT satz$ 0410 SELECT INPUT "CON:" 0420 ENDPROC satzladen 0430 // 0440 PROC satzspeichern 0450 PRINT "In welche Datei soll gespeichert werden?" 0460 INPUT datei$ 0470 SELECT OUTPUT "f:"+datei$ 0480 PRINT satz$ 0490 SELECT OUTPUT "CON:" 0500 ENDPROC satzspeichern 0510 // 0520 // 0530 // 0540 // 0550 PROC vigenere_verschlüsseln 0560 stelle:=1 0561 codestelle:=1 0570 REPEAT 0580 asciizahl:=ORD(satz$(:stelle:)) 0581 verschlüsselungszahl:=ORD(codewort$(:codestelle:)) 0590 asciizahl:=asciizahl+verschlüsselungszahl 0600 satz$(:stelle:):=CHR$(asciizahl) 0610 stelle:=stelle+1 0611 codestelle:=codestelle+1 0612 IF codestelle>LEN(codewort$) THEN codestelle:=1 0620 UNTIL stelle>LEN(satz$) 0630 ENDPROC vigenere_verschlüsseln 0640 // 0650 // 0660 PROC vigenere_entschlüsseln 0670 stelle:=1 0671 codestelle:=1 0680 REPEAT 0690 asciizahl:=ORD(satz$(:stelle:)) 0691 verschlüsselungszahl:=ORD(codewort$(:codestelle:)) 0700 asciizahl:=asciizahl-verschlüsselungszahl 0710 satz$(:stelle:):=CHR$(asciizahl) 0720 stelle:=stelle+1 0721 codestelle:=codestelle+1 0722 IF codestelle>LEN(codewort$) THEN codestelle:=1 0730 UNTIL stelle>LEN(satz$) 0740 ENDPROC vigenere_entschlüsseln 0750 // 0760 // 0770 PROC meldungen 0780 DIR "f:*.dat" 0790 ENDPROC meldungen 0800 // 0810 // 0820 PROC codewort_eingeben 0830 PRINT "Bitte codewort:" 0840 INPUT codewort$ 0850 ENDPROC codewort_eingeben