Skip to content
Simple XOR encryption
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
src
test
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
index.js
package-lock.json
package.json
tsconfig.json

README.md

xorCrypto

npm version npm version

XOR Cipher is secure, as long as key length equal to data length. Simple and lightweight algorithm, this encryption used SHA256 as PRNG to create XOR-KEY.

Features

  • XOR-KEY will be changed every 32 bytes
  • XOR-KEY was created from SHA256 of SecrectKey and OpenSSL RNG's value
  • Simple
  • Lightweight
  • Easy to implement
  • Data don't repeate by sequence
  • Hash based

Installation

Require NodeJs

npm install xorcrypto

Usage

const xorCrypto = require('xorcrypto');

let myXorCrypto = new xorCrypto(Buffer.from('My secret key, I will share with my friend.'));
let value, encrypted, decrypted;
value = Buffer.from('This is my secret message!');

encrypted = myXorCrypto.encrypt(value);

decrypted = myXorCrypto.decrypt(encrypted);

console.log(`Value: ${value}\nEncrypted: ${encrypted.toString('hex')}\nDecrypted: ${decrypted.toString()}\nIs the same: ${decrypted.toString() == value}`);

Result:

chiro@moonfang:~/labs$ node test.js 
Value: This is my secret message!
Encrypted: 970504f07e0ee97aa3e53c55414fc6f01b581e0d441167c64c8a8f807bc5617f59c190bc555c96eaf504
Decrypted: This is my secret message!
Is the same: true
chiro@moonfang:~/labs$ node test.js 
Value: This is my secret message!
Encrypted: 79f0a536a36e1a284ec450acc14651c00b9c043462158d2177dccda7d821bc35c8335fa68f610d01c0f9
Decrypted: This is my secret message!
Is the same: true
chiro@moonfang:~/labs$ 

License

This module distributed under MIT License

You can’t perform that action at this time.