Écrivez un programme qui prend deux lignes d'entrée et utilise la première comme une phrase clé pour crypter la seconde selon la technique de cryptage Playfair.
Wikipedia décrit le cryptage Playfair en détail , mais pour éviter toute ambiguïté, voici un bref résumé:
1. Générez un tableau clé:
Remplacez toutes les occurrences de Jdans la phrase clé par I, puis supprimez tous les caractères non alphabétiques et les caractères répétés. Insérez dans une table de cryptage 5 × 5, remplissant les cellules restantes avec le reste de l'alphabet (sauf J; nous n'aimons pas J).
Exemple:
                                        S T A C K
                                        O V E R F
Stack Overflow  -->  STACKOVERFLW  -->  L W B D G
                                        H I M N P
                                        Q U X Y Z
2. Préparez le message à chiffrer
Remplacez-les Jpar un I, supprimez tous les caractères non alphabétiques et divisez-les en paires, en utilisant un Xpour séparer deux fois les paires contenant la même lettre. Si vous vous retrouvez avec un nombre impair de lettres, ajoutez Xà la fin. (Note: numéraux doivent être précisées en pleine - ONE, TWO, THREE, etc. - mais vous pouvez supposer cela a déjà été fait pour vous.)
Exemple:
In:
The cat crept into the crypt, crapped, and crept out again.
Out:
TH EC AT CR EP TI NT OT HE CR YP TC RA PX PE DA ND CR EP TO UT AG AI NX
3. Cryptage
Chiffrez chaque paire de lettres à tour de rôle. S'ils se trouvent dans des lignes et des colonnes différentes de la table des clés, remplacez chacun par la lettre de la même ligne dans la colonne où se trouve l'autre lettre (par exemple, VM⇒ EI, LZ⇒ GQ). S'ils sont dans la même ligne (ou colonne), choisissez les deux caractères immédiatement à droite (ou en dessous), en les enroulant si nécessaire (par exemple, OE⇒ VR, ZG⇒ KP).
Exemple:
In:
TH EC AT CR EP TI NT OT HE CR YP TC RA PX PE DA ND CR EP TO UT AG AI NX
Out:
SI RA CA RD FM VU IC VS MO RD ZN AK EC MZ MF BC YN RD FM SV TV KB TM MY
La chaîne produite par ce processus est le message chiffré, que votre programme doit sortir.
Règles:
- Le texte et la clé d'entrée peuvent être obtenus à partir d' 
stdinarguments de ligne de commande ou d'autres sources similaires. L'entrée codée en dur n'est pas autorisée. - Votre programme doit accepter les majuscules et les minuscules pour la phrase de passe et le message.
 - La sortie chiffrée peut être en majuscule ou en minuscule.
 - Votre programme doit accepter des phrases clés d'au moins 64 caractères et des textes de message d'au moins 16 Ko.
 - Vous n'êtes pas obligé de gérer les entrées non ASCII.
 - Vous pouvez ignorer la possibilité que la paire de lettres 
XXse produise pendant le cryptage. - Il n'est pas nécessaire d'ajouter des espaces à la sortie du programme.
 - Votre réponse doit inclure un exemple de message, de phrase clé et de sortie chiffrée produite par votre programme.
 - Il s'agit d'un défi de golf de code, donc la réponse avec le code le plus court (en octets) gagnera.
 
REMARQUE: N'oubliez pas que vous ne devez couper les lettres consécutives que si elles apparaissent dans la même paire . Ainsi, par exemple,
MASSACHUSETTSdevrait être chiffré commeMA SX SA CH US ET TS- le doubleSdoit être divisé, mais pas le doubleT.
J" Avez-vous des sentiments similaires à propos de l'APL?