Javascript Library of Crypto Standards.
O desenvolvimento ativo dos criptografias foi descontinuado. Esta biblioteca não é mais mantida.
Hoje em dia, NodeJs e Modern Browers têm um módulo Crypto
nativo. A versão mais recente do Cryptojs já usa o módulo Crypto nativo para geração de números aleatórios, pois Math.random()
não é seguro criptográfico. O desenvolvimento adicional de criptografia resultaria em ser apenas uma embalagem de criptografia nativa. Portanto, o desenvolvimento e a manutenção foram descontinuados, é hora de optar pelo módulo crypto
nativo.
Requisitos:
npm install crypto-js
ES6 Importação para o caso de uso típico de assinatura de chamadas da 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 ) ) ;
Modular incluir:
var AES = require ( "crypto-js/aes" ) ;
var SHA256 = require ( "crypto-js/sha256" ) ;
...
console . log ( SHA256 ( "Message" ) ) ;
Incluindo todas as bibliotecas, para acesso a métodos extras:
var CryptoJS = require ( "crypto-js" ) ;
console . log ( CryptoJS . HmacSHA1 ( "Message" , "Key" ) ) ;
Requisitos:
bower install crypto-js
Modular incluir:
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" ) ) ;
} ) ;
Incluindo todas as bibliotecas, para acesso a métodos extras:
// 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 >
Veja: 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
Altere o algoritmo de hash padrão e a iteração do PBKDF2 para evitar segurança fraca usando a configuração padrão.
Hashher KDF personalizado
Suporte de Blowfish
Corrija a ordem do módulo na liberação agrupada.
Inclua o campo do navegador no pacote lançado.json.
Adicionado URL Variante segura da codificação base64. 357
Evite Webpack para adicionar o pacote de navegador de criptografia. 364
Esta é uma atualização, incluindo mudanças de interrupção em alguns ambientes.
Nesta versão, Math.random()
foi substituído pelos métodos aleatórios do módulo de criptografia nativa.
Por esse motivo, as criptografia podem não ser executadas em alguns ambientes JavaScript sem módulo de criptografia nativa. Como o IE 10 ou antes ou reagir nativo.
Rollback, 3.3.0
é o mesmo que 3.1.9-1
.
O movimento do uso do módulo Crypto Secure Native será deslocado para uma nova versão 4.xx
Como é uma mudança de ruptura, o impacto é grande demais para uma liberação menor.
O uso do módulo de criptografia nativo foi corrigido. A importação e o acesso do módulo de criptografia nativa foram aprimorados.
Nesta versão, Math.random()
foi substituído pelos métodos aleatórios do módulo de criptografia nativa.
Por esse motivo, o CryptoJS pode não ser executado em alguns ambientes JavaScript sem módulo de criptografia nativa. Como o IE 10 ou antes.
Se for absoluto necessário para executar o Cryptojs em tal ambiente, fique com a versão 3.1.x
Criptografar e descriptografar permanecem compatíveis. Mas lembre -se de que as versões 3.1.x
ainda usam Math.random()
que é criptograficamente seguro, pois não é aleatório o suficiente.
Esta versão veio junto com BUG
CRITICAL
.
Não use esta versão! Por favor, vá para uma versão mais recente!
O 3.1.x
é baseado nos módulos originais de CryptoJs, embrulhados nos Commonjs.