1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-crypto-js

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Crypto-js

Библиотека JavaScript криптографических стандартов.

Прекращение разработки

Активное развитие CryptoJS было прекращено. Эта библиотека больше не поддерживается.

В настоящее время в NodeJS и современных браузерах есть собственный модуль Crypto. Последняя версия CryptoJS уже использует собственный модуль Crypto для генерации случайных чисел, поскольку Math.random() не является криптобезопасным. Дальнейшее развитие CryptoJS привело бы к тому, что он стал бы только оболочкой собственного модуля Crypto. Поэтому разработка и поддержка были прекращены, пришло время перейти на собственный модуль crypto.

Node.js (установка)

Требования:

— 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"));
});

Использование без RequireJS

<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>

API

См.: https://cryptojs.gitbook.io/docs/

AES-шифрование

Шифрование открытого текста

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-crypto-js.git
git@api.gitlife.ru:oschina-mirror/mirrors-crypto-js.git
oschina-mirror
mirrors-crypto-js
mirrors-crypto-js
develop