Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: помогите разобраться с кодом  (Прочитано 1176 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн reziromul

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
помогите разобраться с кодом
« : 23 Сентября 2013, 09:19:05 »
Просьба помочь разобраться в этом коде, т.е. как его и где запустить, и по поводу входных и выходных файлов не ясно.

import os
from Crypto.Cipher import DES3

def encrypt_file(in_filename, out_filename, chunk_size, key, iv):
    des3 = DES3.new(key, DES3.MODE_CFB, iv)

    with open(in_filename, 'r') as in_file:
        with open(out_filename, 'w') as out_file:
            while True:
                chunk = in_file.read(chunk_size)
                if len(chunk) == 0:
                    break
                elif len(chunk) % 16 != 0:
                    chunk += ' ' * (16 - len(chunk) % 16)
                out_file.write(des3.encrypt(chunk))

def decrypt_file(in_filename, out_filename, chunk_size, key, iv):
    des3 = DES3.new(key, DES3.MODE_CFB, iv)

    with open(in_filename, 'r') as in_file:
        with open(out_filename, 'w') as out_file:
            while True:
                chunk = in_file.read(chunk_size)
                if len(chunk) == 0:
                    break
                out_file.write(des3.decrypt(chunk))

from Crypto import Random
iv = Random.get_random_bytes(8)
with open('to_enc.txt', 'r') as f:
    print 'to_enc.txt: %s' % f.read()
encrypt_file('to_enc.txt', 'to_enc.enc', 8192, key, iv)
with open('to_enc.enc', 'r') as f:
    print 'to_enc.enc: %s' % f.read()
decrypt_file('to_enc.enc', 'to_enc.dec', 8192, key, iv)
with open('to_enc.dec', 'r') as f:
    print 'to_enc.dec: %s' % f.read()


что означают эти значения: "8192", "key", "iv"?

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: помогите разобраться с кодом
« Ответ #1 : 23 Сентября 2013, 11:42:51 »
8192 количество байт, для обработки 3DES шифрованием с ключом key и солью IV, для модификации CFB.
В википедии написано.

Суть в том, что шифруем первые 8байт, потом с их помощью вторые 8 и т.д. Всё правильно написал ЕМНИП(в вики не лез пока писал)
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн reziromul

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: помогите разобраться с кодом
« Ответ #2 : 23 Сентября 2013, 14:49:23 »
вот у меня есть файл to_enc.enc, как мне его расшифровать?
и как указанный выше код правильно ввести в python?

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: помогите разобраться с кодом
« Ответ #3 : 23 Сентября 2013, 16:08:26 »
Вам бы какой учебник по питону почитать.

попробуйте в файл все части сохранить и вызвать

python ИМЯ_ФАЙЛА
Я сам не питонист.
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: помогите разобраться с кодом
« Ответ #4 : 23 Сентября 2013, 20:13:56 »
В программе расшифровки укажи файл, который надо расшифровать. Потом запускай программу, она должна лежать в каталоге, там же, где и файл для расшифровки.
« Последнее редактирование: 23 Сентября 2013, 20:15:57 от Grigory Smirnov »

 

Страница сгенерирована за 0.015 секунд. Запросов: 22.