Narcoleptic's Patch Mangler


    1.3.15 • Public • Published


    A pure JavaScript implementation of the AES block cipher algorithm and features.

    Simple and very secure Cipher for encrypt and decrypt some sensetive string values.


    • Pure JavaScript
    • key size (must be 128 bits (16 bytes), 192 bits (24 bytes) or 256 bits (32 bytes))
    • Supports all key sizes (128-bit, 192-bit and 256-bit)
    • Supports all common modes of operation ( ECB )
    • Added prefix feature

    Strings and Bytes

    Strings could be used as keys. But UTF-8 allows variable length, multi-byte characters, so a string that is 16 characters long may not be 16 bytes long.

    Also, UTF8 should NOT be used to store arbitrary binary data as it is a string encoding format, not a binary encoding format.



    To install aes-ecb in your node.js project:

    npm install aes-ecb

    And to access it from within node, simply add:

    var aesEcb = require('aes-ecb');

    KeyString must be 128 bits (16 bytes), 192 bits (24 bytes) or 256 bits (32 bytes) long.

    How it works

    keyString - is some unique secret key that takes part in encryption and decryption process.

    input - is any string that you want to be encrypted and decrypted later.

    var keyString = 'KeyMustBe16ByteOR24ByteOR32Byte!';
    var input = 'Some secret string that should be encrypted or decrypted !';
    var encrypt = aesEcb.encrypt(keyString, input);
    var decrypt = aesEcb.decrypt(keyString, input);

    Example with "Hello world!"

    aesEcb.encrypt('KeyMustBe16ByteOR24ByteOR32Byte!', 'Hello world!')
    // result looks like ' C41XiUDI/bEvSwYO1iZvOQ== '
    aesEcb.decrypt('KeyMustBe16ByteOR24ByteOR32Byte!', 'C41XiUDI/bEvSwYO1iZvOQ==')
    // result looks like ' Hello world! '


    aes-ecb.encrypt has required arguments as "keyString" and "input",

    and optional as "pref" - prefix & "s" -separator

    Example with "Hello world" and prefix with separator

    IMPORTANT * when you want to use prefix you should use separator also it's required!

    //shema  aesEcb.encrypt(keyString, input, pref, s);
    aesEcb.encrypt('KeyMustBe16ByteOR24ByteOR32Byte!', 'Hello world!', "prefix", " :: ");
    //result looks like ' prefix::C41XiUDI/bEvSwYO1iZvOQ=='

    IMPORTANT * if you had used prefix and separator for encrypt value so for decrypt you should use separator only, or both prefix and separator as separator!

    //shema  aesEcb.decrypt(keyString, input, s);
    aesEcb.decrypt('KeyMustBe16ByteOR24ByteOR32Byte!', 'Hello world!', " :: ");
    //result looks like ' Hello world! '
    //shema  aesEcb.decrypt(keyString, input, s);
    aesEcb.decrypt('KeyMustBe16ByteOR24ByteOR32Byte!', 'Hello world!', " prefix:: ");
    //result looks like ' Hello world! '


    How do I get a question I have added?

    E-mail me at with any questions, suggestions, comments, etc.


    npm i aes-ecb

    DownloadsWeekly Downloads






    Unpacked Size

    7.17 kB

    Total Files


    Last publish


    • evgeniy.derzhavin