Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/moul/otp
One-Time Pad utility
https://github.com/moul/otp
conference cryptography one-time-pad otp xor
Last synced: 27 days ago
JSON representation
One-Time Pad utility
- Host: GitHub
- URL: https://github.com/moul/otp
- Owner: moul
- License: mit
- Created: 2019-05-27T08:43:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-23T14:55:01.000Z (about 2 years ago)
- Last Synced: 2024-10-07T20:59:15.246Z (about 1 month ago)
- Topics: conference, cryptography, one-time-pad, otp, xor
- Language: Jupyter Notebook
- Homepage: https://manfred.life/cryptography
- Size: 8.79 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# otp
[One-Time Pad](https://en.wikipedia.org/wiki/One-time_pad) utility
## Synopsis
INPUT | otp
## Description
The `otp` utility applies the [OTP](https://en.wikipedia.org/wiki/One-time_pad) cipher against the text passed as input with the key passed as argument.
As for [ROT13](https://en.wikipedia.org/wiki/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
```console
$ cat file.plain | otp "a-random-string-with-same-the-length-of-the-input-file" > /path/to/file.encrypted
```## Example
```console
$ echo -n "hello world!" | hexdump -C
00000000 68 65 6c 6c 6f 20 77 6f 72 6c 64 21 |hello world!|
``````console
$ echo -n "@@@@@@@@@@@@" | hexdump -C
00000000 40 40 40 40 40 40 40 40 40 40 40 40 |@@@@@@@@@@@@|
``````console
$ echo -n "hello world!" | otp "@@@@@@@@@@@@" | hexdump -C
00000000 28 25 2c 2c 2f 60 37 2f 32 2c 24 61 |(%,,/`7/2,$a|
``````console
$ echo -n "@@@@@@@@@@@@" | otp "hello world!" | hexdump -C
00000000 28 25 2c 2c 2f 60 37 2f 32 2c 24 61 |(%,,/`7/2,$a|
``````console
$ echo -n "hello world!" | otp "@@@@@@@@@@@@" | otp "@@@@@@@@@@@@" | hexdump -C
00000000 68 65 6c 6c 6f 20 77 6f 72 6c 64 21 |hello world!|
``````console
$ echo -n "hello world!" | otp "hello world!" | hexdump -C
00000000 00 00 00 00 00 00 00 00 00 00 00 00 |............|
``````console
$ 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!|
```