# encode-encrypt-hash-file-cli

A simple wrapper of the crypto node library to provide a simple cli for encoding, encrypting and hashing files.

NOTE: This is just for fun and an exercise in writing node.js NOT a considered approach to good encryption. DO NOT USE THIS for anything you seriously need hidden.

## usage:

command line example: `node index operation input-filename output-filename [password]`

available operations: `[encrypt, decrypt, hashmd5, hashsha1, hashsha256, base64encode, base64decode, rot13]`

password only required for encryption/ decryption operations

## notes:

 * NOTE: This is just for fun and an exercise in writing node.js NOT a considered approach to good encryption. DO NOT USE THIS for anything you seriously need hidden.
 * Example of why this is for FUN only: I am not a security expert by any stretch. I am just forcing 1 particular encryption mode: CTR. I am not even allowing you to pass in an IV. It is likely then that this is not the best encryption mode/ automatically generated IV for your use case.
 * Node.js's crypto library is just a wrapper around OpenSSL. If you have problems you probably don't have this installed on your system. Especially if you are a Windows user.
 * Encryption/ decryption uses the AES256-CTR cipher.
 * If you want a secure hashing algorithm only use SHA256. MD5 and SHA1 are only there for educational purposes.
 * Rot13 is just there for a bit of fun. yes that IS my idea of fun.
