Skip to content

Instantly share code, notes, and snippets.

@bithavoc
Created October 20, 2011 02:17

Revisions

  1. @johanfirebase johanfirebase created this gist Oct 20, 2011.
    25 changes: 25 additions & 0 deletions nodejs_asymm_crypto_sample.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    /*
    Asymmetric Encryption Sample in Node.js: Encrypt and Decrypt using Password as a key(SECRET_KEY)
    Algorithm: des-ede3-cbc (Three key Triple-DES EDE in CBC mode)
    [email protected]
    @thepumpkin
    */

    var assert = require('assert')
    var crypto = require('crypto')
    var Buffer = require('buffer').Buffer
    var SECRET_KEY = "ChuckN0rrisL1kesPur3D3PapaSuperKey"
    var ENCODING = 'hex'
    var text = "This is the text to cipher!"
    var cipher = crypto.createCipher('des-ede3-cbc', SECRET_KEY)
    var cryptedPassword = cipher.update(text, 'utf8',ENCODING)
    cryptedPassword+= cipher.final(ENCODING)

    var decipher = crypto.createDecipher('des-ede3-cbc', SECRET_KEY)
    var decryptedPassword = decipher.update(cryptedPassword, ENCODING,'utf8')
    decryptedPassword += decipher.final('utf8')

    assert.equal(text, decryptedPassword)

    console.log("Crypted Text:", cryptedPassword)
    console.log("Decrypted Text:", decryptedPassword)