加密標準的JavaScript庫。
Cryptojs的積極發展已經停止。該庫不再維護。
如今,Nodejs和現代瀏覽器具有本機Crypto
模塊。由於Math.random()
不是加密級安全,因此最新版本的加密js已經將本機加密模塊用於隨機數生成。加密J的進一步發展將導致它只是本地加密貨幣的包裝。因此,已經停止開發和維護,現在是時候去找本機crypto
模塊了。
要求:
npm install crypto-js
ES6導入典型API呼叫簽名用例:
import 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 ) ) ;
模塊化包括:
var AES = require ( "crypto-js/aes" ) ;
var SHA256 = require ( "crypto-js/sha256" ) ;
...
console . log ( SHA256 ( "Message" ) ) ;
包括所有庫,以獲取額外的方法:
var CryptoJS = require ( "crypto-js" ) ;
console . log ( CryptoJS . HmacSHA1 ( "Message" , "Key" ) ) ;
要求:
bower install crypto-js
模塊化包括:
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" ) ) ;
} ) ;
包括所有庫,以獲取額外的方法:
// 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" ) ) ;
} ) ;
< 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 >
請參閱:https://cryptojs.gitbook.io/docs/
var CryptoJS = require ( "crypto-js" ) ;
// Encrypt
var ciphertext = CryptoJS . AES . encrypt ( 'my message' , 'secret key 123' ) . toString ( ) ;
// Decrypt
var bytes = CryptoJS . AES . decrypt ( ciphertext , 'secret key 123' ) ;
var originalText = bytes . toString ( CryptoJS . enc . Utf8 ) ;
console . log ( originalText ) ; // 'my message'
var CryptoJS = require ( "crypto-js" ) ;
var data = [ { id : 1 } , { id : 2 } ]
// Encrypt
var ciphertext = CryptoJS . AES . encrypt ( JSON . stringify ( data ) , 'secret key 123' ) . toString ( ) ;
// Decrypt
var bytes = CryptoJS . AES . decrypt ( ciphertext , 'secret key 123' ) ;
var decryptedData = JSON . parse ( bytes . toString ( CryptoJS . enc . Utf8 ) ) ;
console . log ( decryptedData ) ; // [{id: 1}, {id: 2}]
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
使用默認配置更改默認的哈希算法和迭代為PBKDF2預防弱安全性。
自定義KDF HASHER
池塘支撐
修復捆綁釋放中的模塊訂單。
在發布的軟件包中包括瀏覽器字段。
添加了base64編碼的URL安全變體。 357
避免使用WebPack添加加密瀏覽器包。 364
這是一個更新,包括某些環境的破壞更改。
在此版本中, Math.random()
已被本機加密模塊的隨機方法替換。
因此,Cryptojs可能不會在沒有本機加密模塊的某些JavaScript環境中運行。例如IE 10或之前或反應天然。
回滾, 3.3.0
與3.1.9-1
相同。
使用本機安全加密模塊的舉動將轉移到新的4.xx
版本。由於這是一個打破的變化,因此影響太大了,對於較小的釋放而言。
本機加密模塊的使用已固定。本機加密模塊的導入和訪問已得到改進。
在此版本中, Math.random()
已被本機加密模塊的隨機方法替換。
因此,Cryptojs可能不會在沒有本機加密模塊的某些JavaScript環境中運行。例如IE 10或之前。
如果絕對需要在這種環境中運行cryptojs,請使用3.1.x
版本。加密和解密保持兼容。但是請記住3.1.x
版本仍然使用Math.random()
它在密碼上不安全,因為它不夠隨機。
此版本帶有CRITICAL
BUG
。
不要使用此版本!請,去尋找一個較新的版本!
3.1.x
基於包裹在commonjs模塊中的原始cryptojs。