1, отражение
Ключевые слова:
GetAttr строка, чтобы найти тему члена
hasattr согласно строке, определяется , существует ли предмет , который состоит
SetAttr в соответствии со строкой, чтобы установить целевой подвижный элемент (ОЗУ)
delattr в соответствии со строкой, судить набор целевой подвижный элемент (RAM)
Простой пример:
1, определяет пять функций, а также ряд в обработчик файлов
Защиту f1 (): печать ( " F1 " ) Защита f2 (): печать ( " F2 " ) Защита f3 (): печать ( " F3 " ) Защита f4 (): печать ( " F4 " ) Защита f5 (): печать ( " F5 " ) f0 = 9
2, а затем создать файл запуска. Цифровой вход, чтобы передаточная функция, соответствующая
от типов Импорт FunctionType Импорт Handler это время True: Print ( "" " функционирует система поддерживает: 1.f1 2.f2 3.f3 4.f4 5.f5 6.f6 " "" ) Val = в поле ВХОД ( " Пожалуйста , введите функция для выполнения: " ) , если hasattr (Обработчик, Val): # определяет , является ли или нет нормального func_or_val = GetAttr (Обработчик, Val) # строка параметров, блок , чтобы найти членов одного и того же имени , если isinstance (func_or_val, FunctionType) : func_or_val () еще : Печать (func_or_val) еще : Печать ( « введенного имени не существует атрибут » ) # резюме. Параметр строки (второй параметр), к объекту (первый параметр) , чтобы найти пользователь с этим именем
При относительно большое количество данных, то невозможно определить, написать кучу отражения особенно важно в это время.
Краткое описание:
То, что отражается: параметр строки (второй параметр), к объекту (первый параметр), чтобы найти член одного и то же имя (предложение: форма строки символов целевой операции атрибуты, связанное)
2, md5 шифрование
В Python модуль шифрования md5 зависит от hashlib
Обычный md5 шифрования, легко постучала библиотека трещины. Это когда вам нужно соль.
Простой пример выглядит следующим образом:
Импорт hashlib ОСВ = B ' Asdasd ' DEF MD5 (PWD): OBJ = hashlib.md5 (ОСВ) # соль ОСВ obj.update (pwd.encode ( 'UTF - 8 ' )) # приобретает шифротекста V = obj.hexdigest () возвращение v
# Поскольку md5 не является обратимым, поэтому md5 дешифрования. Возьмите данные зашифрованы и открытый текст для шифрования, а затем сравнить, что приводит к выводу.
3, журнал.
Был написано однажды, не повторять.