Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 4, 2011 08:07:19

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

Ок у вас трешка? Может быть, сделайте “wt”. На 2.x этот фокус проходит, хотя это конечно несколько нелогично.



Офлайн

#2 Дек. 4, 2011 08:18:13

br3d
От:
Зарегистрирован: 2011-05-02
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

doza_and
Ок у вас трешка? Может быть, сделайте “wt”. На 2.x этот фокус проходит, хотя это конечно несколько нелогично.
да, третий питон. при изменении на wt запустилось, но эффекта нет(

думаю не может ли быть этого из-за того, что при дешифрации я преобразую полученные числа в символы(для того что бы их можно было записать в строку)…



Офлайн

#3 Дек. 4, 2011 08:31:50

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

тут логика простая не надо ничего зашифровывать расшифровывать
при считывании из файлов указываете кодировку

x="ывафавфа"
with open("output.txt","rt",encoding="utf-8") as f:
s=f.read(x)
внутри программы у вас всегда все в unicode те 2 байта.
А при записи тоже указываете нужную кодировку (чтобы в файле был 1 или 2 байта по вашему желанию)
br3d
просто задача шифровать любой файл
расшифровать???
Вот эта задача ПРИНЦИПИАЛЬНО неразрешима. Поскольку по содержимому файла нельзя однозначно сказать в какой он кодировке.



Офлайн

#4 Дек. 4, 2011 09:13:14

br3d
От:
Зарегистрирован: 2011-05-02
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

doza_and
тут логика простая не надо ничего зашифровывать расшифровывать
при считывании из файлов указываете кодировку
x="ывафавфа"
with open("output.txt","rt",encoding="utf-8") as f:
s=f.read(x)
внутри программы у вас всегда все в unicode те 2 байта.
А при записи тоже указываете нужную кодировку (чтобы в файле был 1 или 2 байта по вашему желанию)
br3d
просто задача шифровать любой файл
расшифровать???
Вот эта задача ПРИНЦИПИАЛЬНО неразрешима. Поскольку по содержимому файла нельзя однозначно сказать в какой он кодировке.
тоесть в таком случая питон не по подходит ? я правильно понял ???



Офлайн

#5 Дек. 4, 2011 09:25:08

br3d
От:
Зарегистрирован: 2011-05-02
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

если так, то очень грустно.., так как у меня две лабы выполненные на нем, и в обоих уперся в эту проблемму …, придется переписывать на плюсах(((



Офлайн

#6 Дек. 4, 2011 11:04:15

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

Вы не поняли - это невозможно вообще. Ни в каком языке. В общем случае в файле вообще нет информации о кодировке. Поэтому на плюсах нет никакого смысла переписывать.

Простой пример:
у вас есть 4 байта

Что это float или int или строка или два символа utf? Оно может быть чем угодно - эта информация находится не в этих байтах а в контексте где они используются.



Отредактировано (Дек. 4, 2011 11:08:35)

Офлайн

#7 Дек. 4, 2011 11:21:01

br3d
От:
Зарегистрирован: 2011-05-02
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

да, действительно странно…, хотя я уверен, что решение есть …, ладно, будем думать …, на плюсах или питоне, но я задачу решу) …,
по сути тут какой алгоритм шифрования не бери(ну кроме тех, что работают с битами) столкнешься с этой проблемой…,

потому как задание именно ШИРОВАТЬ ЛЮБОЙ ФАЙЛ .., будь то бинарник или видео ролик ..,, прчем что бы после расшифрования не утратился функционал …,



Офлайн

#8 Дек. 4, 2011 11:22:22

br3d
От:
Зарегистрирован: 2011-05-02
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

вообще я еще думал на счет struct pack\unpack но что то так и не придумал как можно это использовать в моем случае(



Офлайн

#9 Дек. 4, 2011 11:35:46

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

Ааа понял всетаки шифровать.

def encodefile(nm1,nm2):
with open(nm1,"rb") as f:
data=f.read()
dataencoded=enc(data)
with open(nm2,"wb") as f:
f.write(dataencoded)
def decodefile(nm1,nm2):
with open(nm1,"rb") as f:
data=f.read()
datadecoded=dec(data)
with open(nm2,"wb") as f:
f.write(datadecoded)
вам просто надо подходить к данным как к потоку байтов



Офлайн

#10 Дек. 4, 2011 15:05:17

br3d
От:
Зарегистрирован: 2011-05-02
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

из байт кода обратно в русский

doza_and
Ааа понял всетаки шифровать.
def encodefile(nm1,nm2):
with open(nm1,"rb") as f:
data=f.read()
dataencoded=enc(data)
with open(nm2,"wb") as f:
f.write(dataencoded)
def decodefile(nm1,nm2):
with open(nm1,"rb") as f:
data=f.read()
datadecoded=dec(data)
with open(nm2,"wb") as f:
f.write(datadecoded)
вам просто надо подходить к данным как к потоку байтов
да я все это делал, проблема в другом, так как алгоритм дешифрует побайтово, мне надо эти байты объединять в какой то контейнет…, что собственно я и не могу понять как сделать, какого типа должен быть этот контейнер что бы сохраненные в нем байты остались байтами????



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version