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

OSCHINA-MIRROR/summer-league-rsa-and-base64

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 01:02 f436bef

RSA и гибридное шифрование с использованием Base64

Причины гибридного шифрования

  1. RSA имеет недостатки при обработке длинных полей: максимальная длина для шифрования составляет 117 байт, а для расшифровки — 128 байт. Поэтому методы шифрования и расшифровки всегда разделены на сегменты.

  2. Если при шифровании с помощью RSA китайский текст точно попадает в диапазон от 1 до 117 байтов, то при перестановке во время расшифровки может возникнуть проблема с искажением китайского текста, так как один китайский символ занимает несколько байтов.

  3. В этом случае необходимо использовать шифрование 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 )

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

1
https://api.gitlife.ru/oschina-mirror/summer-league-rsa-and-base64.git
git@api.gitlife.ru:oschina-mirror/summer-league-rsa-and-base64.git
oschina-mirror
summer-league-rsa-and-base64
summer-league-rsa-and-base64
master