Skip to content

Latest commit

 

History

History
58 lines (41 loc) · 1.63 KB

README.md

File metadata and controls

58 lines (41 loc) · 1.63 KB

otp

One-Time Pad utility

Synopsis

INPUT | otp <pad>

Description

The otp utility applies the OTP cipher against the text passed as input with the key passed as argument.

As for ROT13, otp is its own inverse; that is, to undo otp, the same algorithm is applied with the same key.

$plaintext == $plaintext | otp $key | otp $key

Usage

$ cat file.plain | otp "a-random-string-with-same-the-length-of-the-input-file" > /path/to/file.encrypted

Example

$ echo -n "hello world!" | hexdump -C
00000000  68 65 6c 6c 6f 20 77 6f  72 6c 64 21              |hello world!|
$ echo -n "@@@@@@@@@@@@" | hexdump -C
00000000  40 40 40 40 40 40 40 40  40 40 40 40              |@@@@@@@@@@@@|
$ echo -n "hello world!" | otp "@@@@@@@@@@@@" | hexdump -C
00000000  28 25 2c 2c 2f 60 37 2f  32 2c 24 61              |(%,,/`7/2,$a|
$ echo -n "@@@@@@@@@@@@" | otp "hello world!" | hexdump -C
00000000  28 25 2c 2c 2f 60 37 2f  32 2c 24 61              |(%,,/`7/2,$a|
$ echo -n "hello world!" | otp "@@@@@@@@@@@@" | otp "@@@@@@@@@@@@" | hexdump -C
00000000  68 65 6c 6c 6f 20 77 6f  72 6c 64 21              |hello world!|
$ echo -n "hello world!" | otp "hello world!" | hexdump -C
00000000  00 00 00 00 00 00 00 00  00 00 00 00              |............|
$ printf "\0\0\0\0\0\0\0\0\0\0\0\0" | otp "hello world!" | hexdump -C
00000000  68 65 6c 6c 6f 20 77 6f  72 6c 64 21              |hello world!|