This can be used to create (encrypt) and solve (decrypt) a Railfence Cipher. A Railfence Cipher maps each letter to a cosine wave of the specified height where each letter resides at an integer rail height.
The Railfence Cipher Wikipedia entry provides more information on the methods used: https://en.wikipedia.org/wiki/Rail_fence_cipher
Arguments
- x
A vector to be encoded or decoded.
- n
(Default:
1
) The width of the rail to be used. A width of one will have no effect.- decrypt
(Default:
FALSE
) The defaultFALSE
will encrypt while usingTRUE
will decrypt a given value ofx
.
Examples
(e1 <- railfence("abcde", 2))
#> [1] "acebd"
railfence(e1, 2, decrypt = TRUE)
#> [1] "abcde"
(e2 <- railfence("cipheR is a great R package!", 4))
#> [1] "c gRaiRi r kgpesaetpceh aa!"
railfence(e2, 4, decrypt = TRUE)
#> [1] "cipheR is a great R package!"
(e3 <- railfence("Isn't this fun?", 3))
#> [1] "Itius' hsfnnt ?"
railfence(e3, 3, decrypt = TRUE)
#> [1] "Isn't this fun?"