зашифровать текстовое сообщение с помощью открытого ключа RSA - PullRequest
0 голосов
/ 31 октября 2018

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

Я пытаюсь сделать это в bash с помощью команды openssl и через python, используя модуль pycrypto, но безуспешно. Я новичок без опыта криптографии.

Как мне это сделать. Заранее спасибо

public_key

1 Ответ

0 голосов
/ 31 октября 2018

Предположения:

  • Открытый ключ, данный вашим клиентом, находится в файле "key.pub"
  • Получение от пользователя ввода во время выполнения для шифрования строки или текста в переменной с именем "msg".
  • Уже установлена ​​библиотека Crypto.PublicKey с помощью команды " sudo pip install Crypto.PublicKey "

Код:

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKCS1_v1_5

with open("key.pub", 'r') as f1:
    pubkey = f1.read()

msg = raw_input("Enter String to be encrypted: ")
print("raw string->", msg)

keyPub = RSA.importKey(pubkey) # import the public key
cipher = Cipher_PKCS1_v1_5.new(keyPub)
cipher_text = cipher.encrypt(msg.encode()) # now we have the cipher
print("cipher text->", cipher_text)

Формат ключа в файле:

Формат ключа в файле должен быть таким,

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAybVqRvfYvWbLsB98BqkD
lWd0/5y6SyhHt6/r6M0l7JXBweqMvxVt7XmI2yqPL56YxzcgQ8ycDkoqHJ+XozgP
iRnLNpYRlCzsiaOElbmQcnrI8iOb9Ahm6j0cbBB1S8VNvD+u9RQJt53zPxPj8/Dq
f1oNGFXOM8udNYWZaRCukLs/TumsAn0a+BF4639WtFiUvTWdVhlyvCQTs49ytRkH
rXH30RkB528RIvTGeW8xBTV4NaiTIzAEKCVSPagLr4Hzbb9b5+bODic/zkLGQazy
/NKOFgiB7kD2+WEMcuhTr5noeXau0PDAhgmrBhzzWOjUwwaO+ACvJLkPXZfjhy7P
+wIDAQAB
-----END PUBLIC KEY-----
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...