English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Введение
Сначала я хотел попробовать установить python3.6 в Windows, хотя установка python прошла успешно, но при установке модуля Cryto с помощью pip3 install pycrypto постоянно возникали ошибки. После долгих попыток я решил установить все на Linux.
Следующий процесс ограничен системой Linux:
Crypto не является встроенным модулем и требует скачивания.http://www.voidspace.org.uk/python/modules.shtml#pycrypto
После скачивания я обнаружил, что скачал crypto, а не Crypto (разница только в первой букве大小写)
А функция crypto.Cipher не работает, возникает ошибка, в конце концов, на:https://stackoverflow.com/questions/31485110/no-module-named-crypto-cipher/31485157 Чтобы найти решение, нужно изменить имя файла crypto в папке Python27\Lib\site-packages. Да, просто изменить его на Crypto. В результате модуль будет работать...
Из-за того, что я скачал версию без установки, я не установил VS2008. Я использовал pip, но не мог загрузить Crypto. Установка этих модулей в Windows真的是 вызов проблем, если бы моя машина была лучше, я бы установил двойную систему... Отклонился от темы...
0x00 Установка python
apt-get install python3.6
0x01 Установка pip3
1. Сначала установите setuptool
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26 tar -zxvf setuptools-19.6.tar.gz cd setuptools-19.6.tar.gz python3 setup.py build python3 setup.py install
2. Затем可以直接安装 pip и все будет готово
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb tar -zxvf pip-8.0.2.tar.gz cd pip-8.0.2 python3 setup.py build python3 setup.py install
0x02 Установка crypto
apt-get install python3-dev pip3 install Crypto pip3 install --upgrade pycrypt
Давайте рассмотрим алгоритм AES из Crypto.Cipher.
Код выглядит следующим образом:
from Crypto.Cipher import AES import base64 secret = "12345678912345678912345678912345" # Начальный пароль пользователя, длина 16, 24 или 32 символов cipher = AES.new(secret) # Создается объект cipher с использованием AES и начального пароля s = cipher.encrypt("1234567891234567") # Вводится строка, подлежащая шифрованию, обратите внимание, что длина строки должна быть кратна 16. print s # Вывести зашифрованную строку print base64.b64encode(s) # Вывести строку после шифрования в формате base64. print cipher.decrypt(s) # Расшифровать
Это для тех, кто только начинает, (я), и общие методы обработки можно найти по адресу https://ru.oldtoolbag.com/article/114364.htm
Почему после шифрования строки снова использовать кодирование base64, я думаю, что обработка строки основана на двоичном коде, а принцип base64 заключается в добавлении двух нулей перед каждые 6 двоичных чисел, таким образом, все символы ascii, обработанные в строке, становятся видимыми (по крайней мере, не те знаки вопроса..). Протестируйте это с помощью модуля charset, и я обнаружил, что это действительно так.
Алгоритм DES использует те же принципы, что и AES, но нужно注意, что начальная строка пароля должна быть 8 символов, а в других местах просто замените AES на DES (если вы не помните о настройке окружения, Python все же очень удобен...)
Этот модуль Crypto имеет другие криптографические алгоритмы, такие как хеш-алгоритмы, и если великие мастера или друзья обнаружат этот модуль, пожалуйста, оставьте комментарий ниже, и顺便教我如何使用它,谢谢大家。
Это все, что есть в этой статье, я надеюсь, что это поможет вам в изучении. Надеюсь, что вы также будете активно поддерживать учебник Yana.
Заявление: содержимое статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не имеет права собственности, не был отредактирован вручную и не несет ответственности за связанные с этим юридические вопросы. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @), чтобы сообщить о нарушении,并提供 соответствующие доказательства. Если будет установлено, что содержимое нарушает права на интеллектуальную собственность, сайт немедленно удалят涉嫌侵权的内容。