Crée une implémentation du chiffre Atbash, un ancien système de chiffrement créé au Moyen-Orient.
Le chiffre Atbash est un simple chiffre de substitution qui repose sur la transposition de toutes les lettres de l'alphabet, de sorte que l'alphabet obtenu soit à l'envers. La première lettre est remplacée par la dernière, la deuxième par l'avant-dernière, et ainsi de suite.
Un chiffre Atbash pour l'alphabet latin se présenterait comme suit :
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba
C'est un chiffre très faible, car il n'a qu'une seule clé possible et c'est un simple chiffre de substitution mono-alphabétique. Cependant, ce n'était peut-être pas un problème à l'époque de ce chiffre.
Le texte chiffré est écrit en groupes de longueur fixe, la taille traditionnelle d'un groupe étant de 5 lettres ; les chiffres restent inchangés et la ponctuation est exclue. Le but est de rendre plus difficile toute déduction fondée sur les limites entre les mots. Tout le texte sera encodé en lettres minuscules.
test donne gvhg
x123 yes donne c123b vh
gvhg donne test
gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt donne thequickbrownfoxjumpsoverthelazydog
String.lowercase
Selon la version d'OCaml que tu as installée, il est mal vu d'utiliser String.lowercase.
Depuis la version 4.03.0, String.lowercase est dépréciée au profit de String.lowercase_ascii.
Ainsi, au lieu d'écrire
String.lowercase "Hello, World!"
utilise
String.lowercase_ascii "Hello, World!"
Consulte la documentation de String pour découvrir d'autres fonctions utiles.
Inscris-toi sur Exercism pour apprendre et maîtriser OCaml avec 60 exercices, et un vrai mentorat humain, le tout gratuitement.