В этой статье мы обсудим RSA / ECB / PKCS1Padding шифрование и дешифрование криптографии в javascript. Мы будем генерировать пары ключей (открытый и закрытый ключи) с помощью OpenSSL и использовать эти ключи для асимметричного шифрования и дешифрования.
Даже у вас есть другой вариант создания ключей онлайн .

Шифрование / дешифрование данных - один из основных методов безопасности, обычно используемых в платежных шлюзах.
Он шифруется с использованием открытого ключа платежного шлюза и может быть расшифрован только с помощью закрытого ключа платежного шлюза.

Создать самоподписанный сертификат TLS?

Самозаверяющие сертификаты TLS подходят для личного использования или для приложений, которые используются внутри организации.

  1. Перейдите к пользователю root и перейдите в каталог, в котором вы хотите создать пару сертификатов и ключей. Это место будет зависеть от ваших потребностей. Здесь мы будем использовать /root/Desktop/certificates
sudo - s
cd Desktop 
mkdir certificates
cd certificates

2. Создайте команду сертификата:

openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key
  1. Вам будет предложено добавить в сертификат идентифицирующую информацию о вашем веб-сайте или организации. Поскольку самозаверяющий сертификат не будет использоваться публично, в этой информации нет необходимости. Если этот сертификат будет передан в центр сертификации для подписи, информация должна быть как можно более точной.
  2. Ниже приводится разбивка параметров OpenSSL, используемых в этой команде.
  • -newkey rsa:4096: размер ключа RSA, где RSA 2048 - значение по умолчанию. Это зависит от ваших потребностей.
  • -x509: представляет самозаверяющий сертификат.
  • -sha256: алгоритм безопасного хеширования → 265-битный SHA.
  • -days: определяет продолжительность выдачи сертификата в днях. Для самозаверяющего сертификата это значение может быть увеличено при необходимости, например. -days 365 → один год
  • -nodes: Создайте сертификат, не требующий парольной фразы. Если этот параметр исключен, вам необходимо будет вводить парольную фразу в консоли каждый раз при перезапуске приложения, использующего ее.

Вот скриншот вывода:

  1. Вы можете ограничить права доступа к ключу, чтобы только root мог получить к нему доступ:
chmod 400 /root/Desktop/certificates/MyKey.key

Теперь посмотрите на рабочем столе, созданную папку с именами сертификатов, которая содержит два файла MyCertificate.crt и MyKey.key. Во всяком случае, это ключевые пары 🙂.

ОК, круто..!! 👍. Теперь нам нужно использовать указанные выше пары ключей для шифрования и дешифрования.

Примечание. Сохраните сертификат и ключ на внешнем хранилище для резервного копирования.

RSA / ECB / PKCS1Padding шифрование и дешифрование

  1. Откройте терминал и установите следующие модули.
npm install crypto fs

В приведенном выше коде сообщение → объект JSON, содержащий параметры вашего запроса, например. message = {«amount»: «5.00», «date»: new Date ()}

Итак, теперь у вас есть открытый ключ (MyCertificate.crt) 🔒 для шифрования и закрытый ключ (MyKey.key) 🔐 для дешифрования.

Примечание. Открытый ключ может быть предоставлен платежным шлюзом. Также вас могут попросить предоставить им созданный вами файл сертификата (а не файл .key). Затем они могут отправить вам зашифрованное сообщение, и вы должны будете расшифровать зашифрованное сообщение с помощью файла .key (закрытого ключа)
Открытый ключ может иметь несколько форматов, например .pem, .cer или. crt и т. д.

# Процесс шифрования
1. Преобразуйте сообщение в строковый формат, а не в поток двоичных данных
2. Теперь зашифруйте двоичные данные в формате RSA / ECB / PKCS1Padding
3. Итак, у вас есть зашифрованное сообщение 🔐.

# Процесс дешифрования
1. Преобразуйте зашифрованное сообщение в строковый формат, чем в поток двоичных данных
2. Теперь расшифруйте двоичные данные в формате RSA / ECB / PKCS1Padding
3. Итак, у вас есть расшифрованное сообщение. 👏

Я думаю, что в приведенном выше коде больше не требуется объяснений,

Привет, надеюсь, эта статья вам очень помогла. Наслаждайтесь 🙂.
Если у вас возникнут вопросы, дайте мне знать в комментариях.

Чтобы увидеть больше подобных сообщений, следуйте
1. https://medium.com/khojchakra
2. https://medium.com/rtkal

Спасибо.