1.0.0 • Published 6 years ago

aes.js-wrapper v1.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

AES.js-wrapper

Encrypt and decrypt very secure and completely uniqe text from and to AES 256 CBC

Installation

# With NPM
npm i -S ihack2712/aes.js-wrapper

# With YARN
yarn add ihack2712/aes.js-wrapper

# With bower
bower install ihack2712/aes.js-wrapper

Example

const AES = require('aes.js-wrapper')

var password = 'secret'
  , text = 'Hello World'

var encrypted = AES.encrypt(text, password)
  , decrypted = AES.decrypt(encrypted, password)

console.log('AES Wrapper Example')
console.log('Password: "' + password + '"')
console.log('Dummy Text: "' + text + '"')
console.log('')
console.log('* Encrypted')
console.log(encrypted)
console.log()
console.log('* Decrypted')
console.log(decrypted)
Results In:
$ node example
AES Wrapper Example
Password: "secret"
Dummy Text: "Hello World"

* Encrypted
c9ea1bf12e83ecb5b06a2f9e1ebb4c7eea0fba8d48ffa4973bd4d4b65b809e648f0996c291dc7035ca1c41dcf39864188f41f5893bc00d73d4b376e74cdc9bf0a933df90723dc9f4510e4d6ad9936694

* Decrypted
Hello World

Properties

NameTypeDescription
_iv_BufferGet the default IV in a buffer.
dummyTextstringThis is the default dummy text to use when hashing and validating hashes.

Methods

constructor ()

The constructor method in this class is completely useless, it's not used for anything.

encrypt (value, password)

Encrypt normal text to a very uniqe, and very secure hex formatted string.

Params
NameTypeDescription
valuestringThis is the text to encrypt.
passwordstringThis is the raw text utf8 password to hash into a md5 hex that will also secure the encryption better.
Returns

string

Example
AESWrapper.encrypt('hello world', 'very secret password')
// '39f425031f850fcca2f0f4f56bf3143a8104fa1dd27eb143f64a4fd3f223b85ca6b5849a5b48e6dd4af9fb6ddba9ffbae41c4d165491f8358ae7167d7acc834e58cf97fbab413aef0165ea991a475809'

decrypt (data, password)

Decrypt encrypted text to the normal text using the very secret password.

Params
NameTypeDescription
datastringThis is the encrypted text to decrypt
passwordstringThis is the raw text utf8 password to hash into a md5 hex that will also secure the encryption better.
Returns

string

Example
AESWrapper.decrypt('39f425031f850fcca2f0f4f56bf3143a8104fa1dd27eb143f64a4fd3f223b85ca6b5849a5b48e6dd4af9fb6ddba9ffbae41c4d165491f8358ae7167d7acc834e58cf97fbab413aef0165ea991a475809', 'very secret password')
// 'hello world'

hash (key)

Hash text into a completely uniqe hash, that means hashing the same text again won't be equal to this one.

Params
NameTypeDescription
keystringThis key will be used to create the hash, this key will be encrypting dummy text.
Returns

string

Example
AESWrapper.hash('Hello World')
// c6ae556bd9a4d728f061ff66cd196e96e00792810061a528db8f4f74f229c60dc9bfc837fbe447eadb7c6353ffce18983849c70ffc7ac754ee3d2502ddc148827032ea83741d9647a6a2e8921cb1800c192381fe42d357de64d397c4e10c0b2eeee18d2255a7817cb36bb9ee97c17fb84ad48da3b2902d3b0953a357f6d0b9720c117474ea2bdf3cc9212645403f6ed94f8106cfb2db4b755ae15c3652721a108654fff81c06379fd092794dea8455019212cd25a983146cb8472049bba75d9a4e5777484c4360dabc233d6fa4c9923a

val (hash, key)

Check if a hash is valid by decrypting dummy text.

Params
NameTypeDescription
hashstringThis is the hash to match against, simply try to decrypt this hash into the dummy text and check if the decryption was successful.
keystringThis key will be used to decrypt the hash into dummy text.
Returns

string

Example
AESWrapper.val('c6ae556bd9a4d728f061ff66cd196e96e00792810061a528db8f4f74f229c60dc9bfc837fbe447eadb7c6353ffce18983849c70ffc7ac754ee3d2502ddc148827032ea83741d9647a6a2e8921cb1800c192381fe42d357de64d397c4e10c0b2eeee18d2255a7817cb36bb9ee97c17fb84ad48da3b2902d3b0953a357f6d0b9720c117474ea2bdf3cc9212645403f6ed94f8106cfb2db4b755ae15c3652721a108654fff81c06379fd092794dea8455019212cd25a983146cb8472049bba75d9a4e5777484c4360dabc233d6fa4c9923a', 'Hello World')
// true

getRandomBytes (length)

This is used to get a random IV, this also makes the encryption uniqe and very secure.

Params
NameTypeDescription
lengthnumberThis defines how many bytes that will be generated.
Returns

Buffer

hex (buffer)

This turns a buffer into a string

Params
NameTypeDescription
bufferBufferThe buffer to encode into a hex formatted text.
Returns

string

buffer (hex)

Decode HEX into a buffer.

Params
NameTypeDescription
hexstringThe hex data to decode.
Returns

Buffer

md5 (text)

Hash text into a md5 hash.

Params
NameTypeDescription
textstringThe text to hash to an MD5 hash.
Returns

string

Example
AESWrapper.md5('hello world')
// '5EB63BBBE01EEED093CB22BB8F5ACDC3'