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.
--------------------------------------------------------