moul / otp

One-Time Pad utility

Home Page:https://manfred.life/cryptography

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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!|

About

One-Time Pad utility

https://manfred.life/cryptography

License:MIT License


Languages

Language:Jupyter Notebook 88.4%Language:Go 11.6%