2014-01-09 5 views
0

В статье UsingPickle на Python Wiki предлагается использовать TrustedPickle, чтобы предоставить дополнительную защиту файлам Pickle, просматривая авторизованные подписи и ключи.TrustedPickle не работает?

Я загрузил TrustedPickle 0.01 и установил его в соответствии с инструкциями, поставив скрипт TrustedPickle.py в C: \ Python33 \ Lib \ site-packages.

Однако, следуя инструкциям по использованию TrustedPickle, модуль не работает.

Я открыл сценарий и попытался запустить его, и он пришел с недействительным синтаксисом, и он указывал на строку 142 и столбец 22. Может кто-нибудь посмотреть на скрипт и посмотреть, что случилось? Этот сценарий слишком далеко от моей глубины, чтобы решить проблему.

Вы можете скачать скрипт здесь: http://sourceforge.net/projects/trustedpickle/files/trustedpickle/0.01/

Я пытался 0,02, и это не работает.

+1

Пожалуйста, не публикуйте весь источник из проектов других народов здесь, есть конфликт лицензирования, поскольку любое содержимое, размещенное здесь, автоматически лицензируется CC-Wiki. –

+0

Ой, извините! Помнишь! – RoyalSwish

ответ

0

линия в вопросе:

x1, Key, y1, y2 = 0L, 1L, 1L, 0L 

Задний L (для "длинных") является недействительным синтаксис Python 3; это не нужно, поскольку Python 3's int теперь охватывает как int, так и long от Python 2.x.

Короче говоря, похоже, что библиотека не поддерживает Python 3.x. Следующие модификации trusted_pickle.py:

  • демонтировать все конечные L ые из чисел;
  • удалить import sets и заменить все sets.Set( на set(;
  • Заменить все long( с int(;
  • заменить import md5 на import hashlib и заменить md5.md5(String) на hashlib.md5(String.encode()); и
  • заменить raw_input( на input(;

Разрешить библиотеке import в Python 3.x. Тем не менее, я не тестировал, что на самом деле это работает с этими изменениями.

+0

Так что я просто удаляю 'L'? Или это нарушит сценарий еще больше? – RoyalSwish

+0

Вы можете удалить эти 'L' (и любые другие в коде), но есть и другие несовместимости между Python 2.x и 3.x, которые могут повлиять на это. Вам следует связаться с командой библиотеки и посмотреть, планируют ли они поддерживать Py3k. – jonrsharpe

+0

Я не думаю, что они скоро придут, учитывая, что в 2004 году был выпущен 0.02 ... Я предполагаю, что я должен просто избежать этого сценария. Есть ли другой способ защитить обычный Pickle, такой как попытки TrustedPickle? – RoyalSwish

 Смежные вопросы

  • Нет связанных вопросов^_^