передать зашифрованный файл с помощью Python: ошибка InvalidToken - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу отправить файл с помощью простой программы для сокетов на python.

Получатель:

    import socket
    import sys
    from cryptography.fernet import Fernet
    s = socket.socket()
    s.bind(("0.0.0.0",9999))
    s.listen(10) 

    i = 1
    while True:
        sc, address = s.accept()

        print(address)
        f = open('file_'+ str(i),'wb')
        i=i+1
        fi = Fernet(b'RkmYkE0W0oirK7e-aq7cfRGaq0nnn_GSvLIbLZHfpfw=sssdsdds')
        while (True):

            l = fi.decrypt(sc.recv(1024))
            f.write(l)

            if not l:
                break

        f.close()
        sc.close()
        print('copied the file.')

отправитель:

    from cryptography.fernet import Fernet
    message = "my deep dark secret".encode()

    #key = Fernet.generate_key()
    fi = Fernet(b'RkmYkE0W0oirK7e-aq7cfRGaq0nnn_GSvLIbLZHfpfw=sssdsdds')
    encrypted = fi.encrypt(message)
    #print(key)
    print(encrypted)
    decrypted = fi.decrypt(encrypted)
    print(decrypted.decode("utf-8"))
    s = socket.socket()
    s.connect(("192.168.1.141", 9999))
    f = open("l.pdf", "rb")
    l = fi.encrypt(f.read(1024))
    while (l):

        s.send(l)

        l = f.read(1024)
    s.close()

но я столкнулся с этимошибка:

cryptography.fernet.InvalidToken 
raise Invalid Signature("Signature did not match digest.")

Что мне нужно сделать, чтобы расшифровать мой файл? Я проверил эту передачу в файле PDF.

...