crypto-js
JavaScript-Bibliothek mit Kryptostandards.
Node.js (Installieren)
Bedarf:
- Node.js
- npm (Node.js Paketmanager)
1npm install crypto-js
Usage
ES6-Import für den typischen Anwendungsfall der API-Aufrufsignatur:
1
2
3
4
5
6
7import sha256 from 'crypto-js/sha256';
import hmacSHA512 from 'crypto-js/hmac-sha512';
import Base64 from 'crypto-js/enc-base64';
const message, nonce, path, privateKey; // ...
const hashDigest = sha256(nonce + message);
const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
Modular umfassen:
1
2
3
4var AES = require("crypto-js/aes");
var SHA256 = require("crypto-js/sha256");
...
console.log(SHA256("Message"));
Einschließlich aller Bibliotheken für den Zugriff auf zusätzliche Methoden:
1
2var CryptoJS = require("crypto-js");
console.log(CryptoJS.HmacSHA1("Message", "Key"));
Client (Browser)
Bedarf:
- Node.js
- Bower (Paketmanager für Frontend)
1bower install crypto-js
Usage
Modular umfassen:
1
2
3
4
5
6
7
8
9
10
11
12
13require.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"));
});
Einschließlich aller Bibliotheken für den Zugriff auf zusätzliche Methoden:
1
2
3
4
5
6
7
8
9
10// 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
1
2
3
4
5<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
Siehe: https://code.google.com/p/crypto-js
AES Encryption
Nur-Text-Verschlüsselung
1
2
3
4
5
6
7
8
9
10var 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);
Objektverschlüsselung
1
2
3
4
5
6
7
8
9
10
11
12var 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