RSA и гибридное шифрование с использованием Base64
Причины гибридного шифрования
RSA имеет недостатки при обработке длинных полей: максимальная длина для шифрования составляет 117 байт, а для расшифровки — 128 байт. Поэтому методы шифрования и расшифровки всегда разделены на сегменты.
Если при шифровании с помощью RSA китайский текст точно попадает в диапазон от 1 до 117 байтов, то при перестановке во время расшифровки может возникнуть проблема с искажением китайского текста, так как один китайский символ занимает несколько байтов.
В этом случае необходимо использовать шифрование Base64, чтобы единообразно обрабатывать китайский текст.
Использование шифрования Здесь код уже обработан и адаптирован для мобильных устройств, поскольку у них нет доступа к объекту window.
Если вы хотите использовать этот код на ПК, загрузите пакет RSA с помощью npm:
npm install -s encryptLong
Далее посмотрите на код:
import JSEncrypt from './jsencrypt.js';
import {_encode,_decode} from "./base.js"
//Сначала импортируем пакеты в зависимости от вашей ситуации
const PUBLIC_KEY = `` //Это открытый ключ
const PRIVATE_KEY = `` //Это закрытый ключ
//Создаём экземпляр RSA-шифрования
let enc = new JSEncrypt()
//В RSA добавляем открытый ключ
enc.setPublicKey(PUBLIC_KEY);
//В RSA добавляем закрытый ключ
enc.setPrivateKey(PRIVATE_KEY);
//Процесс шифрования
//Сначала используем base64 для обработки китайского текста
let data = _encode(data)
//Затем используем RSA для шифрования
let rsaData = enc.encryptLong(data)
//Процесс расшифровки
//Сначала расшифровываем с помощью RSA
let data = enc.decryptLong(data)
//Наконец, используем base64 для расшифровки
let BaseData = _decode(data)
Структура каталогов:
base.js
— исходный файл для base64-шифрования.
jsencrypt.js
— исходный файл для RSA-шифрования.
rsa.js
— конфигурационный файл для RSA.
README.md
— документация по использованию.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )