zhouxianguang 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
..
docs 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
CONTRIBUTING.md 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
LICENSE 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
README.md 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
aes.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
bower.json 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
cipher-core.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
core.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
crypto-js.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
enc-base64.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
enc-hex.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
enc-latin1.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
enc-utf16.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
enc-utf8.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
evpkdf.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
format-hex.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
format-openssl.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-md5.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-ripemd160.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-sha1.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-sha224.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-sha256.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-sha3.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-sha384.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac-sha512.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
hmac.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
index.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
lib-typedarrays.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
md5.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
mode-cfb.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
mode-ctr-gladman.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
mode-ctr.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
mode-ecb.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
mode-ofb.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
package.json 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pad-ansix923.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pad-iso10126.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pad-iso97971.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pad-nopadding.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pad-pkcs7.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pad-zeropadding.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
pbkdf2.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
rabbit-legacy.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
rabbit.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
rc4.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
ripemd160.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
sha1.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
sha224.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
sha256.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
sha3.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
sha384.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
sha512.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
tripledes.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos
x64-core.js 4ff8c8d55d submit code %!s(int64=5) %!d(string=hai) anos

README.md

crypto-js

JavaScript library of crypto standards.

Node.js (Install)

Requirements:

  • Node.js
  • npm (Node.js package manager)
npm install crypto-js

Usage

Modular include:

var AES = require("crypto-js/aes");
var SHA256 = require("crypto-js/sha256");
...
console.log(SHA256("Message"));

Including all libraries, for access to extra methods:

var CryptoJS = require("crypto-js");
console.log(CryptoJS.HmacSHA1("Message", "Key"));

Client (browser)

Requirements:

  • Node.js
  • Bower (package manager for frontend)
bower install crypto-js

Usage

Modular include:

require.config({
    packages: [
        {
            name: 'crypto-js',
            location: 'path-to/bower_components/crypto-js',
            main: 'index'
        }
    ]
});

require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) {
    console.log(SHA256("Message"));
});

Including all libraries, for access to extra methods:

// Above-mentioned will work or use this simple form
require.config({
    paths: {
        'crypto-js': 'path-to/bower_components/crypto-js/crypto-js'
    }
});

require(["crypto-js"], function (CryptoJS) {
    console.log(CryptoJS.HmacSHA1("Message", "Key"));
});

Usage without RequireJS

<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
<script type="text/javascript">
    var encrypted = CryptoJS.AES(...);
    var encrypted = CryptoJS.SHA256(...);
</script>

API

See: https://code.google.com/p/crypto-js

AES Encryption

Plain text encryption

var CryptoJS = require("crypto-js");

// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');

// Decrypt
var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);

console.log(plaintext);

Object encryption

var CryptoJS = require("crypto-js");

var data = [{id: 1}, {id: 2}]

// Encrypt
var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123');

// Decrypt
var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));

console.log(decryptedData);

List of modules

  • crypto-js/core
  • crypto-js/x64-core
  • crypto-js/lib-typedarrays

  • crypto-js/md5
  • crypto-js/sha1
  • crypto-js/sha256
  • crypto-js/sha224
  • crypto-js/sha512
  • crypto-js/sha384
  • crypto-js/sha3
  • crypto-js/ripemd160

  • crypto-js/hmac-md5
  • crypto-js/hmac-sha1
  • crypto-js/hmac-sha256
  • crypto-js/hmac-sha224
  • crypto-js/hmac-sha512
  • crypto-js/hmac-sha384
  • crypto-js/hmac-sha3
  • crypto-js/hmac-ripemd160

  • crypto-js/pbkdf2

  • crypto-js/aes
  • crypto-js/tripledes
  • crypto-js/rc4
  • crypto-js/rabbit
  • crypto-js/rabbit-legacy
  • crypto-js/evpkdf

  • crypto-js/format-openssl
  • crypto-js/format-hex

  • crypto-js/enc-latin1
  • crypto-js/enc-utf8
  • crypto-js/enc-hex
  • crypto-js/enc-utf16
  • crypto-js/enc-base64

  • crypto-js/mode-cfb
  • crypto-js/mode-ctr
  • crypto-js/mode-ctr-gladman
  • crypto-js/mode-ofb
  • crypto-js/mode-ecb

  • crypto-js/pad-pkcs7
  • crypto-js/pad-ansix923
  • crypto-js/pad-iso10126
  • crypto-js/pad-iso97971
  • crypto-js/pad-zeropadding
  • crypto-js/pad-nopadding