Bibliothèque JavaScript de normes cryptographiques.
Le développement actif des cryptojs a été interrompu. Cette bibliothèque n'est plus maintenue.
De nos jours, les nodejs et les navigateurs modernes ont un module Crypto
natif. La dernière version de Cryptojs utilise déjà le module de crypto natif pour la génération de nombres aléatoires, car Math.random()
n'est pas crypto-Safe. Le développement ultérieur de cryptojs entraînerait que le fait d'être un emballage de crypto natif. Par conséquent, le développement et la maintenance ont été interrompus, il est temps d'opter pour le module crypto
natif.
Exigences:
npm install crypto-js
ES6 Importation pour le cas d'utilisation de signature d'appel API typique:
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 inclut:
var AES = require ( "crypto-js/aes" ) ;
var SHA256 = require ( "crypto-js/sha256" ) ;
...
console . log ( SHA256 ( "Message" ) ) ;
Y compris toutes les bibliothèques, pour l'accès à des méthodes supplémentaires:
var CryptoJS = require ( "crypto-js" ) ;
console . log ( CryptoJS . HmacSHA1 ( "Message" , "Key" ) ) ;
Exigences:
bower install crypto-js
MODULAR inclut:
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" ) ) ;
} ) ;
Y compris toutes les bibliothèques, pour l'accès à des méthodes supplémentaires:
// 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 >
Voir: 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
Modifier l'algorithme de hachage par défaut et l'itération pour PBKDF2 pour empêcher la sécurité faible en utilisant la configuration par défaut.
Hosher KDF personnalisé
Support de Blowfish
Correction de la commande du module dans la version groupée.
Incluez le champ du navigateur dans le package publié.json.
Ajout d'une variante sûre d'URL du codage de base64. 357
Évitez WebPack pour ajouter un package crypto-navigateur. 364
Il s'agit d'une mise à jour comprenant des changements de rupture pour certains environnements.
Dans cette version, Math.random()
a été remplacé par les méthodes aléatoires du module crypto natif.
Pour cette raison, les cryptojs pourraient ne pas s'exécuter dans des environnements JavaScript sans module de crypto natif. Comme IE 10 ou avant ou React Native.
Rollback, 3.3.0
est le même que 3.1.9-1
.
Le mouvement de l'utilisation du module Crypto Secure Native sera déplacé vers une nouvelle version 4.xx
Comme il s'agit d'un changement de rupture, l'impact est trop important pour une libération mineure.
L'utilisation du module de crypto natif a été fixée. L'importation et l'accès du module de crypto natif ont été améliorés.
Dans cette version, Math.random()
a été remplacé par les méthodes aléatoires du module crypto natif.
Pour cette raison, les cryptojs pourraient ne pas s'exécuter dans certains environnements JavaScript sans module crypto natif. Comme IE 10 ou avant.
S'il est absolument requis pour exécuter des cryptojs dans un tel environnement, restez avec la version 3.1.x
Le chiffrement et le décryptage restent compatibles. Mais gardez à l'esprit que les versions 3.1.x
utilisent toujours Math.random()
qui n'est pas cryptographiquement pas sécurisée, car ce n'est pas assez aléatoire.
Cette version est venue avec BUG
CRITICAL
.
N'utilisez pas cette version! S'il vous plaît, optez pour une version plus récente!
Les 3.1.x
sont basés sur les cryptojs d'origine, enveloppés dans les modules CommonJS.