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
.
XOR-KEY
will be changed every 32 bytesXOR-KEY
was created fromSHA256
ofSecrectKey
andOpenSSL RNG's value
- Simple
- Lightweight
- Easy to implement
- Data don't repeate by sequence
- Hash based
Require NodeJs
npm install xorcrypto
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$
This module distributed under MIT License