Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/serkodev/rncryptor-node
RNCryptor for Node.js (Zero dependencies)
https://github.com/serkodev/rncryptor-node
aes cccryptor decryption encryption rncryptor
Last synced: 8 days ago
JSON representation
RNCryptor for Node.js (Zero dependencies)
- Host: GitHub
- URL: https://github.com/serkodev/rncryptor-node
- Owner: serkodev
- License: mit
- Created: 2022-11-15T09:24:52.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-11-15T10:27:36.000Z (about 2 years ago)
- Last Synced: 2024-12-24T00:32:12.810Z (12 days ago)
- Topics: aes, cccryptor, decryption, encryption, rncryptor
- Language: JavaScript
- Homepage:
- Size: 41 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RNCryptor-node
> This repo hard forks from [chesstrian/JSCryptor](https://github.com/chesstrian/JSCryptor) and uses native `crypto` instead of [mcrypt](https://www.npmjs.com/package/mcrypt).
*Javascript implementation of [RNCryptor](https://github.com/RNCryptor/RNCryptor-Spec)*
This implementation tries to be compatible with [Rob Napier's Objective-C implementation of RNCryptor](https://github.com/RNCryptor/RNCryptor), It supports schema version 3.
This code is based on the [PHP implementation of RNCryptor](https://github.com/RNCryptor/RNCryptor-php).## Install
```bash
npm i rncryptor-node
```## Test
```bash
npm test
```## Example
```js
// Example taken from https://github.com/RNCryptor/RNCryptor-php/blob/master/examples/decrypt.phpvar password = 'myPassword';
var b64string = "AwHsr+ZD87myaoHm51kZX96u4hhaTuLkEsHwpCRpDywMO1Moz35wdS6OuDgq+SIAK6BOSVKQFSbX/GiFSKhWNy1q94JidKc8hs581JwVJBrEEoxDaMwYE+a+sZeirThbfpup9WZQgp3XuZsGuZPGvy6CvHWt08vsxFAn9tiHW9EFVtdSK7kAGzpnx53OUSt451Jpy6lXl1TKek8m64RT4XPr";var RNCryptor = require('rncryptor-node');
console.time('Decrypting example');
var decrypted = RNCryptor.Decrypt(b64string, password);
console.timeEnd('Decrypting example');
console.log("Result:", decrypted.toString());
```### A very good example, provided by @enricodeleo
```js
var fs = require('fs');
var RNCryptor = require('rncryptor-node');var password = 'myPassword';
var img = fs.readFileSync('./Octocat.jpg');
var enc = RNCryptor.Encrypt(img, password);// Save encrypted image to a file, for sending to anywhere
fs.writeFileSync('./Octocat.enc', enc);// Now, to decrypt the image:
var b64 = new Buffer(fs.readFileSync('./Octocat.enc').toString(), 'base64');
var dec = RNCryptor.Decrypt(b64, password);fs.writeFileSync('./Octocat2.jpg', dec); // Image should open.
```## API
### RNCryptor()
Object exposed by `require('rncryptor-node')`;### RNCryptor.Encrypt
* plain_text: *String* or *Buffer*
* password: *String* or *Buffer*
* version: *Number* (3 by default, not mandatory)
* seeded: *Boolean* (false by default, not mandatory)### RNCryptor.Decrypt
* b64_str: *String* or *Buffer*
* password: *String* or *Buffer*### RNCryptor.EncryptWithArbitrarySalts
* plain_text: *String* or *Buffer*
* password: *String* or *Buffer*
* encryption_salt: *String* or *Buffer*
* hmac_salt: *String* or *Buffer*
* iv: *String* or *Buffer*
* version: *Number* (3 by default, not mandatory)### RNCryptor.EncryptWithArbitraryKeys
* plain_text: *String* or *Buffer*
* encryption_key: *String* or *Buffer*
* hmac_key: *String* or *Buffer*
* iv: *String* or *Buffer*
* version: *Number* (3 by default, not mandatory)