Skip to content

A cryptographic library for the one-time pad cipher.

Notifications You must be signed in to change notification settings

lucaspetter/onetimepadjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OneTimePad.js

OneTimePad.js

A cryptographic library for the one-time pad cipher.

Download

About OneTimePad.js

OneTimePad.js is a JavaScript cryptographic library for the one-time pad cipher, based on the method described at this site. It makes encrypting and decrypting messages easy and it's compatible with nearly all web browsers.

The one-time pad cipher is an algorithm for encrypting or decrypting messages. Encryption works by combining a message and a random key together with modular addition, and decryption is done by separating the key from the encrypted message with modular subtraction. It's mathematically impossible to crack a message that has been encrypted properly with a one-time pad as long as the key is truly random, is never re-used, is at least the same length as the message, and is kept secret.

Potential uses

  • Encrypted messaging between two people who have exchanged keys in advance.
  • Securing data posted online by requiring a password to decrypt it, such as protecting an email address from web crawler robots that send spam.

Example code

// Syntax
// otp(message, key, mode, keyRepetition)

// Encryption
otp("My secret message", "jE1&;bWi3f+w7TI8k", "encrypt", false);
// Returns "3754478888035502649989266753346614"

// Decryption
otp("3754478888035502649989266753346614", "jE1&;bWi3f+w7TI8k", "decrypt", false);
// Returns "My secret message"

Requirements

OneTimePad.js is designed to be highly compatible with as many web browsers as possible, including old legacy version of browsers. It should work in all browsers that are in use today.

Licence

OneTimePad.js is copyright © 2016 Lucas Bleackley Petter.

OneTimePad.js is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

OneTimePad.js is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

About

A cryptographic library for the one-time pad cipher.

Resources

Stars

Watchers

Forks

Packages

No packages published