Библиотека крипто -стандартов JavaScript.
Активное развитие Cryptojs было прекращено. Эта библиотека больше не поддерживается.
В настоящее время у Nodejs и Modern Browsers есть родной Crypto
-модуль. В последней версии Cryptojs уже используется нативный крипто-модуль для генерации случайных чисел, так как Math.random()
не является крипто-безопасным. Дальнейшее развитие Cryptojs приведет к тому, что это будет только обертка нативного крипто. Таким образом, разработка и обслуживание были прекращены, пришло время пойти на родной 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
Поддержка миморива
Исправить заказ модуля в комплекте.
Включите поле браузера в выпущенном Package.json.
Добавлен безогарный вариант URL -адреса кодирования BASE64. 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.