Vigenère cipher: Difference between revisions
Content added Content deleted
(New OCaml implementation for >= 4.05) |
(Added Quackery.) |
||
Line 3,020: | Line 3,020: | ||
WMCEEIKLGRPIFVMEUGXQPWQVIOIAVEYXUEKFKBTALVXTGAFXYEVKPAGY |
WMCEEIKLGRPIFVMEUGXQPWQVIOIAVEYXUEKFKBTALVXTGAFXYEVKPAGY |
||
BEWARETHEJABBERWOCKMYSONTHEJAWSTHATBITETHECLAWSTHATCATCH</pre> |
BEWARETHEJABBERWOCKMYSONTHEJAWSTHATBITETHECLAWSTHATCATCH</pre> |
||
=={{header|Quackery}}== |
|||
<lang Quackery> [ [] swap witheach |
|||
[ upper |
|||
dup char A char Z 1+ within |
|||
iff join else drop ] ] is onlycaps ( $ --> $ ) |
|||
[ onlycaps |
|||
[] swap witheach |
|||
[ char A - join ] ] is cipherdisk ( $ --> [ ) |
|||
[ [] swap witheach |
|||
[ 26 swap - join ] ] is deciphering ( [ --> [ ) |
|||
[ behead tuck join swap ] is nextkey ( [ --> [ n ) |
|||
[ dip nextkey + dup |
|||
char Z > if [ 26 - ] ] is encryptchar ( [ c --> [ c ) |
|||
[ $ "" swap rot |
|||
onlycaps witheach |
|||
[ encryptchar |
|||
swap dip join ] |
|||
drop ] is vigenere ( $ [ --> $ ) |
|||
[ cipherdisk vigenere ] is encrypt ( $ $ --> $ ) |
|||
[ cipherdisk deciphering vigenere ] is decrypt ( $ $ --> $ ) |
|||
$ "If you reveal your secrets to the wind, you should " |
|||
$ "not blame the wind for revealing them to the trees." join |
|||
say "Encrypted: " $ "Kahlil Gibran" encrypt dup echo$ cr |
|||
say "Decrypted: " $ "Kahlil Gibran" decrypt echo$</lang> |
|||
{{out}} |
|||
<pre>Encrypted: SFFZCCKDFRLLYUYDMNXMUJTBDHLHQYJGPLSUYUSOVZZJMRMRDHLHQYJNPIRRFEHWQYMBIVMGYTOPBCKMT |
|||
Decrypted: IFYOUREVEALYOURSECRETSTOTHEWINDYOUSHOULDNOTBLAMETHEWINDFORREVEALINGTHEMTOTHETREES</pre> |
|||
=={{header|R}}== |
=={{header|R}}== |