rot
v0.1.0
Published
Perform simple rotational letter substitution (such as ROT-13) in JavaScript.
Downloads
1,702
Readme
rot
rot is a JavaScript library that performs rotational letter substitution. It can be used to shift any ASCII letters in the input string by a given number of positions in the alphabet. To ROT-13 the string 'abc'
, for example:
Installation
Via npm:
npm install rot
Via Bower:
bower install rot
Via Component:
component install mathiasbynens/rot
In a browser:
<script src="rot.js"></script>
In Narwhal, Node.js, and RingoJS:
var rot = require('rot');
In Rhino:
load('rot.js');
Using an AMD loader like RequireJS:
require(
{
'paths': {
'rot': 'path/to/rot'
}
},
['rot'],
function(rot) {
console.log(rot);
}
);
API
rot.version
A string representing the semantic version number.
rot(text, [ n = 13 ])
This function takes a string of text and shifts any ASCII letters in the input string by n
positions in the alphabet (to the right). The optional n
argument defaults to 13
. It can be any number from 0
to 26
. (Other numeric values are accepted too, but they’re not useful; e.g. ROT-1337 is the same as ROT-11.)
// ROT-13 is the default
rot('abc');
// → 'nop'
rot('abc', 13);
// → 'nop'
To decrypt rotational ciphertext for which the n
value is known, simply pass 26 - n
or just -n
as the second parameter to rot()
. For example, to decrypt ROT-5:
rot('Ymnx xywnsl nx jshwduyji zxnsl WTY-5.', 26 - 5);
// → 'This string is encrypted using ROT-5.'
rot('Ymnx xywnsl nx jshwduyji zxnsl WTY-5.', -5);
// → 'This string is encrypted using ROT-5.'
Using the rot
binary
To use the rot
binary in your shell, simply install rot globally using npm:
npm install -g rot
After that you will be able to perform simple rotation encryption from the command line:
$ rot 'foo bar baz'
sbb one onm
$ rot -n 13 'foo bar baz'
sbb one onm
Read a local text file, encrypt it using ROT-5, and save the result to a new file:
$ rot -n 5 < foo.txt > foo-rot-5.txt
Or do the same with an online text file:
$ curl -sL "http://git.io/jH5wdg" | rot -n 5 > rot-5.txt
Or, the opposite — read a local file containing ROT-5 encoded text, decode it back to readable text, and save the result to a new file:
$ rot -n 21 < rot-5.txt > original.txt
See rot --help
for the full list of options.
Support
rot is designed to work in at least Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, PhantomJS 1.9.0, Rhino 1.7RC4, as well as old and modern versions of Chrome, Firefox, Safari, Opera, and Internet Explorer.
Unit tests & code coverage
After cloning this repository, run npm install
to install the dependencies needed for he development and testing. You may want to install Istanbul globally using npm install istanbul -g
.
Once that’s done, you can run the unit tests in Node using npm test
or node tests/tests.js
. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use grunt test
.
To generate the code coverage report, use grunt cover
.
Author
| | |---| | Mathias Bynens |
License
rot is available under the MIT license.