SmartAuthen - Smart, простой, легкий, безопасная кроссплатформенная аутентификация для любого приложения.
Автор и разработчик: А.А. Суворов.
SmartAuthen v0.2.3
Улучшения кода и документации:
Код теперь более удобен и безопасен!
SmartAuthen - Smart, простой, легкий, безопасная кроссплатформенная аутентификация для любого приложения.
Используйте простую, но очень надежную и безопасную аутентификацию в любом из ваших приложений.
Избегайте паролей при регистрации и аутентификации в ваших приложениях. Пользователю трудно запомнить пароли, поэтому пользователи используют либо короткие пароли, либо световые пароли, которые играют в руки киберпреступников. Секретная фраза трудно найти и легко запомнить. На данный момент нет радужных таблиц секретных фраз, поскольку это нереально. Например, я могу использовать при регистрации как секретные фразы катрена из вашей любимой песни.
Это не имеет значения для вашей системы аутентификации, как долго секретная фраза, в любом случае, вы получите только ключ с фиксированной длиной в качестве строки.
Позвольте вашим пользователям зарегистрироваться в удобной секретной фразе, которую пользователь будет легко запомнить, но злоумышленник не сможет ее поднять.
Храните только вход и открытый ключ в ваших базах данных, если ваша база данных будет скомпрометирована, злоумышленник не получит доступ к учетным записям пользователей и не сможет каким -либо образом использовать общественные ключи для аутентификации, в конце концов, от открытого ключа, он не сможет найти секретную фразу.
Возможности:
Внимание!
Общедоступный ключ для пары логин + секретных фразов всегда будет одинаковым.
С любым изменением в логин или секретной фразе ключ изменится, поэтому, если пользователь изменит свое имя пользователя или пассис, ключ должен быть восстановлен.
Если ваша система может использовать одни и те же логины для регистрации и аутентификации, используйте что -нибудь еще, уникальное, чтобы сгенерировать открытый ключ, например, уникальный идентификатор.
Если вы измените значение атрибута step в объекте SmartAuth, ключ для пары логин + секретных фразой также изменится. Всегда используйте одно и то же значение для этого атрибута. Чем выше значение этого атрибута, тем более безопасным открытый ключ.
Использование:
При регистрации вы получите логин и секретную фразу от пользователя.
На основании полученных данных генерируйте открытый ключ для дальнейшего хранения в сочетании с входом в систему. Если ваша система может использовать одни и те же логины для регистрации и аутентификации, используйте что -нибудь еще, уникальное, чтобы сгенерировать открытый ключ, например, уникальный идентификатор.
При аутентификации пользователя вас просят ввести вход в систему и секретную фразу.
Проверка данных.
(Во время проверки открытый ключ сначала генерируется на основе полученных данных по сравнению с сохраненным ключом, и возвращается логическое значение сравнения ключей.)
pip install smartauthen from smartauthen import SmartAuth
smart_auth = SmartAuth ()
login = 'login'
secret = 'secret'
key = smart_auth . make_key ( login , secret )
# True since the login + secret phrase is correct
print ( smart_auth . check ( login , secret , key )) # True
secret = 'secret2'
# False because the secret phrase is incorrect
print ( smart_auth . check ( login = login , secret = secret , key = key )) # False pip install pytestpytest -v pip install pytest-covpytest --cov --cov-report=html Покрытие 100% !!!

python -m buildИли устаревший метод:
python setup.py sdist bdist_wheel
twine upload dist/*
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------
Licensed under the terms of the BSD 3-Clause License
(see LICENSE for details).
Copyright © 2018-2024, A.A. Suvorov
All rights reserved.
--------------------------------------------------------