Δημιούργησε μια υλοποίηση του κρυπτογραφήματος περιστροφής, που μερικές φορές ονομάζεται και κρυπτογράφημα του Καίσαρα.
Το κρυπτογράφημα του Καίσαρα είναι ένα απλό κρυπτογράφημα μετατόπισης που βασίζεται στη μετάθεση όλων των γραμμάτων του αλφαβήτου χρησιμοποιώντας έναν ακέραιο κλειδί μεταξύ 0 και 26.
Η χρήση κλειδιού 0 ή 26 θα δίνει πάντα την ίδια έξοδο, λόγω της αριθμητικής υπολοίπων.
Το γράμμα μετατοπίζεται κατά τόσες θέσεις όση είναι η τιμή του κλειδιού.
Ο γενικός συμβολισμός για τα κρυπτογραφήματα περιστροφής είναι ROT + <key>.
Το πιο συνηθισμένο κρυπτογράφημα περιστροφής είναι το ROT13.
Ένα ROT13 στο λατινικό αλφάβητο θα ήταν ως εξής:
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm
Είναι ισχυρότερο από το κρυπτογράφημα Atbash, γιατί έχει 27 πιθανά κλειδιά και 25 χρησιμοποιήσιμα κλειδιά.
Το κρυπτοκείμενο γράφεται με την ίδια μορφοποίηση όπως η είσοδος, συμπεριλαμβανομένων των κενών και της στίξης.
omg δίνει trl
c δίνει c
Cool δίνει Cool
The quick brown fox jumps over the lazy dog. δίνει Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
Gur dhvpx oebja sbk whzcf bire gur ynml qbt. δίνει The quick brown fox jumps over the lazy dog.
Αυτή είναι μια καλή άσκηση για να πειραματιστείς με μη τυπικά κυριολεκτικά συμβολοσειρών και μεταπρογραμματισμό.
Μια σύντομη εισαγωγή στα μη τυπικά κυριολεκτικά συμβολοσειρών μπορείς να βρεις σε αυτό το άρθρο ιστολογίου. Ένας λεπτομερής οδηγός μεταπρογραμματισμού μπορείς να βρεις στο εγχειρίδιο.
Μπορείς να επεκτείνεις τη λύση σου προσθέτοντας τη λειτουργικότητα που περιγράφεται παρακάτω.
Το Μπόνους A απαιτεί μόνο τα βασικά όπως περιγράφονται στο άρθρο ιστολογίου. Το Μπόνους B απαιτεί σημαντικά περισσότερες γνώσεις μεταπρογραμματισμού στη Julia.
Υλοποίησε ένα κυριολεκτικό συμβολοσειράς που λειτουργεί ως ROT13 στη συμβολοσειρά:
R13"abcdefghijklmnopqrstuvwxyz" == "nopqrstuvwxyzabcdefghijklm"
Υλοποίησε κυριολεκτικά συμβολοσειρών R<i>, i = 0, ..., 26, που μετατοπίζουν τη συμβολοσειρά για τιμές i:
R0"Hello, World!" == "Hello, World!"
R4"Testing 1 2 3 testing" == "Xiwxmrk 1 2 3 xiwxmrk"
R13"abcdefghijklmnopqrstuvwxyz" == "nopqrstuvwxyzabcdefghijklm"
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Julia με 35 έννοιες128 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.