0
Я пытаюсь сделать клиент, который получает ключ AES от разъема over over.Python - Как обменять ключ AES через сокет
как клиент и сервер имеет этот код:
import base64
from Crypto.Cipher import AES
from Crypto import Random
BS = 16
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
unpad = lambda s : s[:-ord(s[len(s)-1:])]
class AESCipher:
def __init__(self, key):
self.key = key
def encrypt(self, raw):
raw = pad(raw)
iv = Random.new().read(AES.block_size)
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(raw))
def decrypt(self, enc):
enc = base64.b64decode(enc)
iv = enc[:16]
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return unpad(cipher.decrypt(enc[16:]))
Как обменять ключ AES от сервера к клиенту?
Вы спрашиваете, как выполнить обмен ключами? Это может быть довольно сложно, и это не вопрос программирования. Вероятно, вы должны ответить на этот вопрос на обмен криптовато-стека или, еще лучше, провести некоторое исследование базовой криптографии. – zindorsky
@zindorsky Спасибо за ответ. Если вы скажете, я сделаю больше исследований. Смогу ли я снова связаться с вами, когда у меня появятся дополнительные вопросы? – iYonatan
Несомненно. Но я не эксперт по ключевым протоколам обмена. – zindorsky