Δημιούργησε μια υλοποίηση της κρυπτογράφησης Atbash, ενός αρχαίου συστήματος κρυπτογράφησης που δημιουργήθηκε στη Μέση Ανατολή.
Η κρυπτογράφηση Atbash είναι μια απλή κρυπτογράφηση αντικατάστασης που βασίζεται στην αντιστροφή όλων των γραμμάτων του αλφαβήτου, έτσι ώστε το αλφάβητο που προκύπτει να έχει αντίστροφη σειρά. Το πρώτο γράμμα αντικαθίσταται από το τελευταίο, το δεύτερο από το προτελευταίο, και ούτω καθεξής.
Μια κρυπτογράφηση Atbash για το λατινικό αλφάβητο θα ήταν η εξής:
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba
Είναι μια πολύ αδύναμη κρυπτογράφηση, επειδή έχει μόνο ένα πιθανό κλειδί και είναι μια απλή μονοαλφαβητική κρυπτογράφηση αντικατάστασης. Ωστόσο, αυτό μπορεί να μην ήταν πρόβλημα στην εποχή της κρυπτογράφησης.
Το κρυπτοκείμενο γράφεται σε ομάδες σταθερού μήκους, με το παραδοσιακό μέγεθος ομάδας να είναι 5 γράμματα, αφήνοντας τους αριθμούς αμετάβλητους, και η στίξη εξαιρείται. Αυτό γίνεται για να είναι πιο δύσκολο να μαντέψει κανείς με βάση τα όρια των λέξεων. Όλο το κείμενο θα κωδικοποιείται ως πεζά γράμματα.
test δίνει gvhg
x123 yes δίνει c123b vh
gvhg δίνει test
gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt δίνει thequickbrownfoxjumpsoverthelazydog
String.lowercase
Ανάλογα με την έκδοση της OCaml που εγκατέστησες, η χρήση της συνάρτησης String.lowercase δεν συνιστάται.
Από την έκδοση 4.03.0, η String.lowercase έχει καταργηθεί και στη θέση της συνιστάται η String.lowercase_ascii.
Έτσι, αντί να γράψεις
String.lowercase "Hello, World!"
χρησιμοποίησε
String.lowercase_ascii "Hello, World!"
Δες την τεκμηρίωση της String για περισσότερες χρήσιμες συναρτήσεις.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις OCaml με 60 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.