В коде есть несколько проблем:
Прежде всего, вы полностью работаете с системой аутентификации Django. Если вы знаете, что вы делаете, это хорошо (хотя это действительно заставляет задуматься, почему вы используете Django, тогда).
В любом другом случае вы действительно должны использовать его, потому что:
login_required()
, который будет обрабатывать правильное перенаправление на страницу входа, локализацию, разрешения, сброс пароля по электронной почте и многое другое. В качестве побочного примечания:
У вас есть две страницы login
и resetpw
, и вы дважды включаете сайт администратора (в базовом urls.py и в механике один).
Хотя этому уже ответили, что я думаю, что это была бы хорошая идея объяснить , почему это должно ожидаться.
дополнительная схема А обычно применяется, потому что большинство криптографических фильтров не семантически безопасно и предотвратить некоторые формы cryptoatacks. Например, обычно в RSA дополнительная схема OAEP используется, который предотвращает некоторые виды нападений (такие как выбранное нападение простого текста или ослепление ).
дополнительная схема А добавляет немного (обычно) случайного мусора к сообщению m, прежде чем сообщение будет отправлено. В методе OAEP, например, два Оракула используются (это - упрощенное объяснение):
, Который предоставляет Вам рандомизацию для сообщений и со способом протестировать, если сообщение является мусором или нет. Поскольку дополнительная схема обратима при дешифровании сообщения, тогда как Вы ничего не можете сказать о целостности самого сообщения, можно, на самом деле, сделать некоторое утверждение о дополнении, и таким образом можно знать, было ли сообщение правильно дешифровано, или Вы делаете что-то не так (т.е. кто-то вмешался в сообщение, или Вы используете неправильный ключ)
Да, это должно ожидаться, или по крайней мере, точно, что происходит, когда наши crypto стандартные программы получают non-decryptable данные
В CryptoStream могут быть непрочитанные байты. Закрытие перед полным чтением потока вызывало ошибку в моей программе.