write "======================================" write "Private Schlüssel werden berechnet" write "======================================" write " " privates_passwort_berechnen = (codewort) -> stelle = 0 asciizahl = 0 verschiebung = -1 buchstabe = '' passwort = '' while stelle < codewort.length buchstabe = codewort[stelle] asciizahl = buchstabe.charCodeAt(0) verschiebung += 1 verschiebung = 0 if verschiebung > 2 asciizahl -= verschiebung buchstabe = String.fromCharCode(asciizahl) passwort += buchstabe stelle += 1 return passwort # Ende von privates_passwort_berechnen signier_passwort_berechnen = (codewort) -> stelle = 0 asciizahl = 0 verschiebung = 1 buchstabe = '' passwort = '' while stelle < codewort.length buchstabe = codewort[stelle] asciizahl = buchstabe.charCodeAt(0) verschiebung = verschiebung - 1 asciizahl = asciizahl - verschiebung buchstabe = String.fromCharCode(asciizahl) passwort = passwort + buchstabe stelle = stelle + 1 if verschiebung < -1 then verschiebung = 1 return passwort # Ende von signier_passwort_berechnen # ============= Hauptprogramm ==================================== turtle.remove() # write " " await read 'Öffentlicher Schlüssel: ', defer codewort write " " write "=========================================" write "Es werden die privaten Schlüssel zum öffentlichen Schlüssel" write ""+codewort+"" write "ermittelt." write "=========================================" passwort = privates_passwort_berechnen codewort write " " write "Der private Schlüssel lautet:" write ""+passwort+"" write "=========================================" passwort = signier_passwort_berechnen codewort write " " write "Der Signier-Schlüssel lautet:" write ""+passwort+"" write "========================================="