Substitution Cipher Implementation - File Encryption/Decryption



Task

Encrypt a input/source file by replacing every upper/lower case alphabets of the source file with another predetermined upper/lower case alphabets or symbols and save it into another output/encrypted file and then again convert that output/encrypted file into original/decrypted file.

This type of Encryption/Decryption scheme is often called a Substitution Cipher.



Related tasks

 Caesar cipher
 Rot-13
 Vigenère Cipher/Cryptanalysis


See also

 Wikipedia: Substitution cipher


key: {:]kYV}(!7P$n5_0i R:?jOWtF/=-pe'AD&@r6%ZXs"v*N[#wSl9zq2^+g;LoB`aGh{3.HIu4fbK)mU8|dMET><,Qc\C1yxJ:}
 
encode: function [str][
    bs: new []
    loop split str 'ch ->
        'bs ++ to :string key\[(to :integer to :char ch)-32]
    return join bs
]
 
decode: function [str][
    bs: new []
    loop split str 'ch ->
        'bs ++ to :string to :char (index key ch)+32
    return join bs
]
 
s: "The quick brown fox jumps over the lazy dog, who barks VERY loudly!"
 
enc: encode s
print ["encoded:" enc]
print ["decoded:" decode enc]