SmartAuthen-智能,简单,轻巧,安全的跨平台身份验证。
作者兼开发人员: AA Suvorov。
Smartauthen v0.2.3
代码和文档改进:
该代码现在更加用户友好和安全!
SmartAuthen-智能,简单,轻巧,安全的跨平台身份验证。
在任何应用程序中使用简单但非常可靠且安全的身份验证。
在您的应用程序中注册和认证时避免使用密码。用户很难记住密码,因此,用户使用简短的密码或轻密码,这些密码播放到网络犯罪分子的手中。秘密短语很难找到,很容易记住。目前,没有秘密短语的彩虹表,因为这是不现实的。例如,我可以从您喜欢的歌曲中注册为秘密的Quatrain短语时使用。
在任何情况下,您的身份验证系统没有区别多长时间,您将仅收到固定长度键作为字符串。
让您的用户注册一个易于记录的秘密短语,该短语将易于记住,但是攻击者将无法捡起它。
仅存储数据库中的登录和公共密钥,如果您的数据库被妥协,攻击者将无法访问对用户帐户的访问,并且将无法以任何方式使用公共密钥进行身份验证,毕竟,他将无法以任何方式找到秘密短语。
可能性:
注意力!
登录 +秘密短语对的公钥始终相同。
随着登录或秘密短语的任何更改,密钥将更改,因此,如果用户更改其用户名或密码,则需要重新生成密钥。
如果您的系统可以使用相同的登录名进行注册和身份验证,请使用其他独特的东西来生成公共密钥,例如唯一的标识符。
如果更改SmartAuth对象中的step属性的值,则登录 +秘密短语对的键也将更改。始终为此属性使用相同的值。该属性的价值越高,公共密钥越安全。
用法:
注册时,您将收到用户的登录名和秘密短语。
基于收到的数据,生成了一个用于进一步存储的公共密钥,并配对登录名。如果您的系统可以使用相同的登录名进行注册和身份验证,请使用其他独特的东西来生成公共密钥,例如唯一的标识符。
认证用户时,要求您输入登录名和秘密短语。
检查数据。
(在验证期间,与存储的密钥相比,首先基于接收的数据生成公共密钥,然后返回密钥比较的布尔值。)
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.
--------------------------------------------------------