JavaScript Library of Crypto Standards.
Die aktive Entwicklung von Kryptojs wurde eingestellt. Diese Bibliothek ist nicht mehr aufrechterhalten.
Heutzutage haben NodeJs und moderne Browser ein natives Crypto
-Modul. Die neueste Version von Cryptojs verwendet bereits das native Krypto-Modul für die Zufallszahlengenerierung, da Math.random()
nicht kryptosicher ist. Die Weiterentwicklung von Kryptojs würde dazu führen, dass es nur eine Verpackung von einheimischen Krypto ist. Daher wurde Entwicklung und Wartung eingestellt, es ist Zeit, sich für das native crypto
-Modul zu entscheiden.
Anforderungen:
npm install crypto-js
ES6 Import für typische API -Aufruf -Unterzeichnung Anwendungsfall:
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 ) ) ;
Modular gehören:
var 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:
var CryptoJS = require ( "crypto-js" ) ;
console . log ( CryptoJS . HmacSHA1 ( "Message" , "Key" ) ) ;
Anforderungen:
bower install crypto-js
Modular gehören:
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" ) ) ;
} ) ;
Einschließlich aller Bibliotheken für den Zugriff auf zusätzliche Methoden:
// 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 >
Siehe: 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
Ändern Sie den Standard -Hash -Algorithmus und die Iteration für PBKDF2, um eine schwache Sicherheit durch die Standardkonfiguration zu verhindern.
Benutzerdefinierter kdf hasher
Blowfish -Unterstützung
MODUL -Bestellung in gebündelter Version beheben.
Fügen Sie das Browserfeld in das freigegebene Paket ein. Json.
URL -sichere Variante der Basis64 -Codierung hinzugefügt. 357
Vermeiden Sie Webpack, um das Krypto-Browser-Paket hinzuzufügen. 364
Dies ist ein Update, das in einigen Umgebungen Änderungen inklusive Brechungsänderungen umfasst.
In dieser Version wurde Math.random()
durch die zufälligen Methoden des nativen Krypto -Moduls ersetzt.
Aus diesem Grund werden Kryptojs in einigen JavaScript -Umgebungen ohne natives Krypto -Modul möglicherweise nicht ausgeführt. Wie dh 10 oder vor oder reagieren native.
Rollback, 3.3.0
ist der gleiche wie 3.1.9-1
.
Die Bewegung der nativen sicheren Krypto -Modul wird in eine neue 4.xx
-Version verlagert. Da es sich um eine Veränderung handelt, ist die Auswirkung für eine kleine Veröffentlichung zu groß.
Die Verwendung des nativen Krypto -Moduls wurde festgelegt. Der Import und der Zugang des nativen Krypto -Moduls wurde verbessert.
In dieser Version wurde Math.random()
durch die zufälligen Methoden des nativen Krypto -Moduls ersetzt.
Aus diesem Grund kann Kryptojs in einigen JavaScript -Umgebungen ohne natives Krypto -Modul nicht ausgeführt werden. Wie dh 10 oder vor.
Wenn es absolut erforderlich ist, Kryptojs in einer solchen Umgebung auszuführen, bleiben Sie bei der Version 3.1.x
Verschlüsseln und entschlüsseln bleiben kompatibel. Beachten Sie jedoch, dass 3.1.x
-Versionen immer noch Math.random()
verwenden, was kryptografisch nicht sicher ist, da es nicht zufällig genug ist.
Diese Version kam mit CRITICAL
BUG
.
Verwenden Sie diese Version nicht! Bitte gehen Sie für eine neuere Version!
Die 3.1.x
basieren auf den ursprünglichen Kryptojs, die in CommonJS -Modulen eingewickelt sind.