Crypto-js
Библиотека JavaScript криптографических стандартов.
Активное развитие CryptoJS было прекращено. Эта библиотека больше не поддерживается.
В настоящее время в NodeJS и современных браузерах есть собственный модуль Crypto. Последняя версия CryptoJS уже использует собственный модуль Crypto для генерации случайных чисел, поскольку Math.random() не является криптобезопасным. Дальнейшее развитие CryptoJS привело бы к тому, что он стал бы только оболочкой собственного модуля Crypto. Поэтому разработка и поддержка были прекращены, пришло время перейти на собственный модуль crypto.
Требования:
— Node.js; — npm (Node.js package manager).
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"));
Требования:
— Node.js; — Bower (пакетный менеджер для внешнего интерфейса).
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"));
});
Включение всех библиотек для доступа к дополнительным методам:
// Вышеупомянутое будет работать или использовать эту простую форму
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");
// Зашифровать
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
// Расшифровать
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}]
// Зашифровать
var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();
// Расшифровать
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
Release notes
4.2.0
Изменены алгоритмы хеширования по умолчанию и итерации для PBKDF2, чтобы предотвратить проблемы с безопасностью при использовании конфигурации по умолчанию.
Добавлен пользовательский хешер KDF.
Добавлена поддержка Blowfish.
4.1.1
Исправлен порядок модулей в комплекте релиза.
В выпущенный package.json добавлено поле браузера.
4.1.0
Добавлен безопасный для URL вариант кодирования base64.
Webpack не добавляет пакет crypto-browser.
4.0.0
Это обновление включает критические изменения для некоторых сред. В этой версии Math.random()
был заменён на случайные методы собственного модуля криптографии. По этой причине CryptoJS может не работать в некоторых средах JavaScript без собственного модуля криптографии, таких как IE 10 или более ранние версии или React Native.
3.3.0
Откат. Версия 3.3.0 такая же, как 3.1.9-1. Переход на использование собственного безопасного модуля криптографии будет перенесён в новую версию 4.x.x, поскольку это критическое изменение, и его влияние слишком велико для незначительного обновления.
3.2.1
Исправлено использование собственного модуля криптографии. Улучшен импорт и доступ к собственному модулю криптографии.
3.2.0
В этой версии Math.random()
заменён случайными методами собственного модуля криптографии. Поэтому CryptoJS может не работать в некоторых средах JavaScript без собственного модуля криптографии, например, IE 10 или ранее. Если необходимо запустить CryptoJS в такой среде, используйте версию 3.1.x. Шифрование и дешифрование остаются совместимыми. Но имейте в виду, что версии 3.1.x всё ещё используют Math.random()
, который не является достаточно безопасным с точки зрения криптографии, так как он недостаточно случайный. Эта версия содержит критическую ошибку. Не используйте эту версию! Перейдите на более новую версию!
3.1.x
Версии 3.1.x основаны на оригинальном CryptoJS, упакованном в модули CommonJS.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )