crypto-ts

Typescript library of crypto standards.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
crypto-ts
45201.0.25 years ago5 years agoMinified + gzip package size for crypto-ts in KB

Readme

crypto-ts
Typescript library of crypto standards. Ready for AOT and treeshaking in combination with Angular and other modern typescript frameworks.

Node.js (Install)

Requirements:
  • Node.js
  • npm (Node.js package manager)

npm install crypto-ts

Usage

ES6 import for typical API call signing use case:
import { AES } from 'crypto-ts';

const encryptedMessage = AES.encrypt('message', 'test').toString();

Modular include:
var AES = require("crypto-ts").AES;
var SHA256 = require("crypto-ts").SHA256;
...
console.log(SHA256("Message"));

Including all libraries, for access to extra methods:
var CryptoTS = require("crypto-ts");
...
console.log(CryptoTS.HmacSHA1("Message", "Key"));

Client (browser)

Requirements:
  • Node.js
  • Bower (package manager for frontend)

bower install crypto-ts

Usage

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

require(["crypto-ts/algo/aes", "crypto-ts/algo/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-ts': 'path-to/bower_components/crypto-ts/crypto-ts'
    }
});

require(["crypto-ts"], function (CryptoTS) {
    console.log(CryptoTS.MD5("Message"));
});

Usage without RequireJS

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

AES Encryption

Plain text encryption

var CryptoTS = require("crypto-ts");

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

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

console.log(plaintext);

Object encryption

var CryptoTS = require("crypto-ts");

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

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

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

console.log(decryptedData);

List of modules

  • ``crypto-ts/core`
  • `crypto-ts/x64-core`
  • `crypto-ts/lib-typedarrays``

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

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

  • ``crypto-ts/pbkdf2``

  • ``crypto-ts/aes`
  • `crypto-ts/tripledes`
  • `crypto-ts/rc4`
  • `crypto-ts/rabbit`
  • `crypto-ts/rabbit-legacy`
  • `crypto-ts/evpkdf``

  • ``crypto-ts/format-openssl`
  • `crypto-ts/format-hex``

  • ``crypto-ts/enc-latin1`
  • `crypto-ts/enc-utf8`
  • `crypto-ts/enc-hex`
  • `crypto-ts/enc-utf16`
  • `crypto-ts/enc-base64``

  • ``crypto-ts/mode-cfb`
  • `crypto-ts/mode-ctr`
  • `crypto-ts/mode-ctr-gladman`
  • `crypto-ts/mode-ofb`
  • `crypto-ts/mode-ecb``

  • ``crypto-ts/pad-pkcs7`
  • `crypto-ts/pad-ansix923`
  • `crypto-ts/pad-iso10126`
  • `crypto-ts/pad-iso97971`
  • `crypto-ts/pad-zeropadding`
  • `crypto-ts/pad-nopadding``