Как преобразовать строку ключа обратно в объект ключа pycrypto? (Питон)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как преобразовать строку ключа обратно в объект ключа pycrypto? (Питон)

Сообщение Anonymous »

Я копирую безопасное рукопожатие клиент-сервер TCP в Python с использованием модуля pycrypto. Когда «сервер» отправляет открытый ключ через сокет, я вынужден преобразовать открытый ключ в строку. Затем «клиент» получает открытый ключ в виде строки, которую невозможно зашифровать с помощью модуля pycrypto.

Я получаю сообщение об ошибке:


AttributeError: объект 'str' не имеет атрибута 'encrypt' в отношении enc_data = public_key.encrypt(secret_piece , 12) на стороне клиента.


Как преобразовать строку public_key обратно в исходное значение когда он был впервые создан модулем RSA?

Код сервера:

def main():
host = '127.0.0.1'
port = 5000

s = socket.socket()
s.bind((host,port))

s.listen(1)
c, addr = s.accept()
print "Connection from: "+str(addr)
while True:
data = c.recv(1024)
if not data:
break
print "from connected user: "+str(data)

print "Start the SSL Handshake..."
a = raw_input('Press enter to generate the key pair. ')

key = RSA.generate(1024, random_generator)
public_key = key.publickey()

print "Key pair generated"
a = raw_input('Press enter to send public key to client ')

print "Sending key..."

if c.send(str(public_key)):
print "Public Key Sent"

print "Waiting for secret list..."

if c.recv(1024):
print "List received."

secret_list = c.recv(1024)

a = raw_input('Press enter to check the information from the list. ')

decrypted_info = key.decrypt(secret_list.enc_data)

match_or_not = SHA256.new(decrypted_info).digest() == secret_list.hash_value

if match_or_not:
print "Info Matches. Sending the ciphertext..."

info_to_be_encrypted = "It seems all secure. Let's talk!"
aes = AES.new(Random.get_random_bytes(16), AES.MODE_ECB)
cipher_text = aes.encrypt(info_to_be_encrypted)

if c.send(cipher_text):
print "Ciphertext sent."


Код клиента

def main():
host = '127.0.0.1'
port = 5000

s = socket.socket()
s.connect((host,port))

message = raw_input("-> ")
while message != 'q':
s.send(message)
public_key = s.recv(1024)
print 'Received from server: '+str(public_key)

message = raw_input("->Press enter to verify the public key.")
print "Public Key verified!"
message = raw_input("-> Press enter to prepare the secret list.")
print "Client prepares the secret list."

secret_piece = Random.get_random_bytes(16)
enc_data = public_key.encrypt(secret_piece, 12)
hash_value = SHA256.new(secret_piece).digest()
L = [enc_data, hash_value]

print "List is ready."
message = raw_input("-> Press enter to send the list")

s.send(str(L))
print "List sent."
print "Waiting for ciphertext from the server..."

if s.recv(1024):
print "Ciphertext recieved."

cipher_text = s.recv(1024)

print "The encrypted message is: " + cipher_text
print "The decrypted message is: " + aes.decrypt(cipher_text)

s.close()


Подробнее здесь: https://stackoverflow.com/questions/497 ... ect-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать строку ключа обратно в объект ключа pycrypto? (Питон)
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как преобразовать ключевую строку обратно в объект ключа Pycrypto? (Python)
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Шифрование и дешифрование с использованием PyCrypto AES-256.
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Почему 2L в файле Number.py PyCrypto меняется на 2 в Python 3.8-slim-buster, но не в Python 3.11-slim-bookworm?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Неужели данных .NET Copy Copy Marry обратно и обратно, или он прикрепляет массив?
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»