Simple Free RSA / AES Encryption and Decryption
npm install simple-free-encryption-toolbash
npm install simple-free-encryption-tool
`
Testing and Building
`bash
npm test
npm run build
`
After running the tests, the coverage report will be available at coverage/index.html.
The coverage badge will be updated automatically.
Pull Requests will run package.json's test and build scripts in CodeSandbox CI.
Client
`html
`
Server
`javascript
const sfet = require('simple-free-encryption-tool');
console.log('random 32 character string generated: ' + sfet.utils.randomstring.generate(32));
console.log('"secret md5 message" hashed: ' + sfet.md5.hash('secret md5 message'));
console.log('"secret sha256 message" hashed: ' + sfet.sha256.hash('secret sha256 message'));
let keySize = 2048;
// generateKeys() runs key generation asynchronously
// this can be called with a callback:
sfet.rsa.generateKeys(keySize, (error, asyncKeys) => {
console.log(${asyncKeys.keySize}-bit key pair generated asynchronously in ${asyncKeys.time}ms);
});
// or async/await:
let asyncKeys = await sfet.rsa.generateKeys(keySize);
console.log(${asyncKeys.keySize}-bit key pair generated asynchronously in ${asyncKeys.time}ms);
// generateKeysSync() runs key generation synchronously
let keys = sfet.rsa.generateKeysSync(keySize);
console.log(${keys.keySize}-bit key pair generated synchronously in ${keys.time}ms);
let encrypted = sfet.rsa.encrypt(keys.public, "secret rsa message");
let decrypted = sfet.rsa.decrypt(keys.private, encrypted);
console.log('rsa decrypted ' + decrypted);
// signing an rsa message
let signature = sfet.rsa.sign(keys.private, "secret rsa message");
console.log('rsa signature ' + signature);
// verifying an rsa signature
console.log('rsa signature valid: ' + sfet.rsa.verify(keys.public, "secret rsa message", signature))
// using default iv of '0000000000000000'
encrypted = sfet.aes.encrypt('secret', 'secret aes message')
decrypted = sfet.aes.decrypt('secret', encrypted);
console.log('aes decrypted ' + decrypted);
// using generated iv
iv = sfet.aes.generateIv();
encrypted = sfet.aes.encrypt('secret', 'secret aes message', iv)
decrypted = sfet.aes.decrypt('secret', encrypted, iv);
console.log('aes decrypted ' + decrypted);
``