• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Программа расшифровывающая файлы работает некорректно. Python

I

inq

Всех приветствую.
Есть программа которая должна расшифровывать ранее зашифрованные файлы в определенной деректории.
Python:
from Crypto.PublicKey import RSA
from Crypto.Random import get_random_bytes
from Crypto.Cipher import AES, PKCS1_OAEP
import os, sys

def decrypt(file):

    file_in = open(file, "rb")
    file_out = open(str(file[:-4]), "wb")
    private_key = RSA.import_key(open("private.pem").read())

    enc_session_key, nonce, tag, ciphertext = \
       [ file_in.read(x) for x in (private_key.size_in_bytes(), 16, 16, -1) ]

    cipher_rsa = PKCS1_OAEP.new(private_key)
    session_key = cipher_rsa.decrypt(enc_session_key)

    cipher_aes = AES.new(session_key, AES.MODE_EAX, nonce)
    data = cipher_aes.decrypt_and_verify(ciphertext, tag)
    file_out.write(data)
    print(file + " DECRYPT!")
    os.remove(file)

def walk(dir):
    for name in os.listdir(dir):
        path = os.path.join(dir, name)
        if os.path.isfile(path): decrypt(path)
        else: walk(path)
walk("C:\\Users\\q\\Desktop\\zxc")
print("---------------------------------------------------------------" )

При запуске программы появляется вывод.
sadfsaefa.png


Расшифровывается только файл zip.
Что я делаю не так???
 
D

Damarion6595

On Windows, attempting to remove a file that is in use causes an exception to be raised;

Причина скорее всего в том что ты не вызываешь file_in.close() всегда закрывай файлы явно когда файл больше не нужен или использую arm (with блок) .
 
I

inq


Причина скорее всего в том что ты не вызываешь file_in.close() всегда закрывай файлы явно когда файл больше не нужен или использую arm (with блок) .
Все заработало. Спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!