Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
1

Запись данных в бинарный файл

16.10.2019, 15:49. Показов 1538. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Мне нужно закодировать файл, и раскодировать его.
Пример:
Закодированное сообщение:
\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x0 8\n\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x08\n'(44 байта)
Раскодированное сообщение:
x80\x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xdbK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\x07K\x07K\x06K\x08K\ne. (92 байта)

Дело в том, что я записываю раскодированное сообщение с помощью коллекции. Может ли она влиять на то, как записываются данные?

Python
1
2
3
4
5
6
7
8
9
10
11
12
for k in range(len(mobs)):
            deM = mul(mobs[k], powmod(mobsr[k], p - 1 - mobscb[k], p), p)
                
                #return deM
            print("Decrypted222 =", deM)
            
            qw=deM
            print(qw)
            mobqw.append(qw)
            fs = 'rez_eg.dat'
            with open(fs.encode('utf8'), "wb") as file:
                pickle.dump(mobqw, file)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2019, 15:49
Ответы с готовыми решениями:

Создание и запись в бинарный файл
Добрый вечер. У меня есть строка произвольной длины, длина кратна 16, состоящая из нулей и единиц....

Запись в бинарный файл
Питоном до этого никогда не пользовался. Я сам C++ программист. Нужна помощь с записью в бинарный...

Запись данных в бинарный файл
Добрый вечер, возник вопрос: как записать массив целых чисел в бинарный файл? У меня запись...

Запись данных в бинарный файл
Мне нужно записать в бинарный файл координаты точек с помощью fwrite и попутно выводить их на...

13
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,673
16.10.2019, 16:20 2
Mindfure, отладчик вам в помощь
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 16:45  [ТС] 3
Alli_Lupin, По нему все хорошо, именно с записью проблема. Я не понимаю почему они записываются криво
0
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
16.10.2019, 16:49 4
Mindfure, проверьте - ка отступы.

Добавлено через 22 секунды
Ибо меня терзают смутные сомнения, что вы где-то НЕ ошиблись.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 16:50  [ТС] 5
Damenikx, Это сарказм?
0
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
16.10.2019, 16:52 6
Mindfure, нет, я серьёзно, проверьте отступы, возможно где-то пропустили. И что под вашим пониманием - "криво"? Всей программы мы не видим, как записывает тоже Больше информации сударь.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 16:57  [ТС] 7
Damenikx, Понял вас.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Кодирование битов:
f = open('s.dat', 'rb')
    for line in f:
        print(line)
        for c in line:#считывание строки в файле
            if c:
                g = random.randint(1, p - 1)
                cb = random.randint(1, p - 1)
                k = random.randint(1, p - 2)
                db = powmod(g, cb, p)
                print("db =", db)
                #r = powmod(g, k, p)
                e = mul(powmod(db, k, p), c, p)
                print("e=",e)
                r = powmod(g, k, p)
                mobs.append(e)
                mobsg.append(g)
                mobscb.append(cb)
                mobsk.append(k)
                mobsr.append(r)
        
        print("ss",mobs)
Раскодирование:
Python
1
2
3
4
5
6
7
8
9
for k in range(len(mobs)):
            deM = mul(mobs[k], powmod(mobsr[k], p - 1 - mobscb[k], p), p)
            print("Decrypted222 =", deM)
            qw=deM
            print(qw)
            mobqw.append(qw)
            fs = 'rez_eg.dat'
            with open(fs, "wb") as file:
                pickle.dump(mobqw, file)
0
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,673
16.10.2019, 16:59 8
Mindfure, по нему может быть как угодно. Посмотрите им, что именно и куда он записывает.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 17:48  [ТС] 9
Alli_Lupin, Да посмотрел, все куда нужно он вычисляет. Может быть проблема в том, что это все из-за списка? Я эти байты расшифрованные помещаю в список, а затем записываю в файл.

Добавлено через 41 минуту
Кликните здесь для просмотра всего текста
'\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x 08\n'
db = 27
e= 657
db = 563
e= 1176
db = 296
e= 790
db = 998
e= 154
db = 1008
e= 261
db = 1246
e= 733
db = 663
e= 711
db = 1
e= 5
db = 11
e= 1322
db = 119
e= 199
db = 985
e= 767
db = 1121
e= 1239
db = 1335
e= 57
db = 1050
e= 642
db = 402
e= 864
db = 13
e= 494
db = 1312
e= 998
db = 784
e= 203
db = 376
e= 758
db = 273
e= 1176
ss [657, 1176, 790, 154, 261, 733, 711, 5, 1322, 199, 767, 1239, 57, 642, 864, 494, 998, 203, 758, 1176]
b'\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x08\n'
db = 1282
e= 561
db = 451
e= 1363
db = 317
e= 284
db = 494
e= 585
db = 1205
e= 1058
db = 700
e= 496
db = 1027
e= 32
db = 1032
e= 116
db = 534
e= 4
db = 365
e= 852
db = 472
e= 963
db = 598
e= 449
db = 178
e= 641
db = 671
e= 1164
db = 618
e= 122
db = 1037
e= 422
db = 1234
e= 753
db = 279
e= 758
db = 440
e= 1290
db = 1029
e= 446
db = 1009
e= 298
db = 164
e= 78
ss [657, 1176, 790, 154, 261, 733, 711, 5, 1322, 199, 767, 1239, 57, 642, 864, 494, 998, 203, 758, 1176, 561, 1363, 284, 585, 1058, 496, 32, 116, 4, 852, 963, 449, 641, 1164, 122, 422, 753, 758, 1290, 446, 298, 78]
Decrypted222 = 255
255
Decrypted222 = 216
216
Decrypted222 = 255
255
Decrypted222 = 219
219
Decrypted222 = 67
67
Decrypted222 = 6
6
Decrypted222 = 4
4
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 4
4
Decrypted222 = 6
6
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 7
7
Decrypted222 = 7
7
Decrypted222 = 6
6
Decrypted222 = 8
8
Decrypted222 = 10
10
Decrypted222 = 255
255
Decrypted222 = 216
216
Decrypted222 = 255
255
Decrypted222 = 219
219
Decrypted222 = 32
32
Decrypted222 = 67
67
Decrypted222 = 32
32
Decrypted222 = 6
6
Decrypted222 = 4
4
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 4
4
Decrypted222 = 6
6
Decrypted222 = 6
6
Decrypted222 = 5
5
Decrypted222 = 6
6
Decrypted222 = 7
7
Decrypted222 = 7
7
Decrypted222 = 6
6
Decrypted222 = 8
8
Decrypted222 = 10
10

Расшифровка правильная, а в записанном файле по другому выглядит
0
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,673
16.10.2019, 17:55 10
Mindfure, а в переменной, из которой вы пишете в файл, правильно?

Добавлено через 22 секунды

Не по теме:

убирайте много_текста под спойлер

0
3573 / 2174 / 570
Регистрация: 02.09.2015
Сообщений: 5,492
16.10.2019, 17:56 11
Цитата Сообщение от Mindfure Посмотреть сообщение
with open(fs, "wb") as file:
Файл на дозапись надо открывать: "ab"
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 18:05  [ТС] 12
Arsegg, Зачем на дозапись, когда я туда списком записываю?

Добавлено через 3 минуты
Alli_Lupin, Да все верно.
Кликните здесь для просмотра всего текста
Зашифрованный:
44
b'\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\ x08\n\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x08\n'
Расшифрованный:
92
b'\x80\x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xdbK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\x07K\x07K\x06K\x08K\ne.'

Туда просто лишние байты еще почему-то записываются
0
3573 / 2174 / 570
Регистрация: 02.09.2015
Сообщений: 5,492
16.10.2019, 18:12 13
Mindfure, вы в цикле записываете (в т.ч. пересоздаете) в файл mobs[k]. По факту только последнее значение mobs хранится в файле.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
16.10.2019, 18:19  [ТС] 14
Arsegg, Нет, туда все нормально записывается.
Кликните здесь для просмотра всего текста
44
b'\xff\xd8\xff\xdb\x00C\x00\x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\ x08\n\xff\xd8\xff\xdb C \x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x08\n'
184
b'\x80\x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xdbK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\x07K\x07K\x06K\x08K\ne.\x80\ x03]q\x00(K\xffK\xd8K\xffK\xdbKCK\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\ x07K\x07K\x06K\x08K\nK\xffK\xd8K\xffK\xdbK KCK K\x06K\x04K\x05K\x06K\x05K\x04K\x06K\x06K\x05K\x06K\x07K\x07K\x06K\x08K\ne.'

Изменил на ab.,добавил все тоже.
0
16.10.2019, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2019, 18:19
Помогаю со студенческими работами здесь

Запись данных в бинарный файл
Всем добра форумчане. Помогите разобраться с проблемой У меня есть структура struct AuthData ...

Запись данных класса в бинарный файл
У меня был просто ввод-вывод в файл, но надо бинарный и мне выдает ошибку: "error 'class...

запись данных с однонарпямленого списка в бинарный файл
С клавиатуры нужно ввести массив строк об успеваемости студентов: фамилия, № зачетки и оценку по 5...

Запись и чтение данных из конструктора в бинарный файл
есть метод if (!File.Exists(file_name)) { return;} List<MainMethots> temp_list = new...

Запись данных бинарный файл и считывание из файла
Здравствуйте. Вот код: FILE *ptrfile; departments in_dep() // описание функции заполнения...

Запись введенных данных с консоли в бинарный файл
Доброго времени суток. Столкнулся с такой проблемой: Мне надо введенные данные в структуру...

Запись данных в бинарный файл с определенной позиции
Привет всем. Кто знает подскажите пожалуйста, возможна ли запись в бинарный файл с определенной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru