otp-encryption
v1.0.0
Published
One-time Pad Cryptographic Library
Maintainers
Readme
🔐 OTP - One-Time Pad Cryptography
Cryptographically secure one-time pad implementation for Node.js using XOR encryption.
📦 Installation
npm install otp-encryption,Quick Start
import { Encrypt, Decrypt, GenerateSecret } from 'otp-encryption';
const message = "Hello, World!";
// Generate a random one-time pad
const secret = GenerateSecret(message.length);
// Encrypt
const ciphertext = Encrypt(message, secret);
// Decrypt
const plaintext = Decrypt(ciphertext, secret);
console.log(plaintext); // "Hello, World!"📚 API Documentation
GenerateSecret(length: number): Uint8Array
Generates a cryptographically secure random one-time pad.
Parameters:
length- Length of the secret in bytes
Returns: Uint8Array containing random bytes
Encrypt(message: string, secret: Uint8Array): Uint8Array
Encrypts a message using XOR with the provided secret.
Parameters:
message- The plaintext message to encryptsecret- The one-time pad (must be same length as message)
Returns: Uint8Array containing the ciphertext
Decrypt(ciphertext: Uint8Array, secret: Uint8Array): string
Decrypts a ciphertext using XOR with the provided secret.
Parameters:
ciphertext- The encrypted datasecret- The one-time pad used for encryption
Returns: Decrypted plaintext string
⚠️ Security Warning
One-Time Pad encryption provides perfect secrecy when used correctly:
✅ The key is truly random (uses crypto.randomBytes)
✅ The key is as long as the message (enforced)
⚠️ The key is used only once (your responsibility!)
⚠️ The key is kept secret (your responsibility!)
Never reuse keys! Each message requires a new random key.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
MIT © caesarsage
