本篇文章帶給大家的內容是關於Flask裡引用雜湊密碼的方法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
雜湊密碼(Password Hash):
對口令進行一次性的加密處理而形成的雜亂字串。這個加密的過程被認為是不可逆的,也就是說,人們認為從哈希串中是不可能還原出原口令的。 (這句話是比較官方的解釋)。
白話說就是說:當我們在註冊帳號密碼的時候,我們需要用到,Password Hash 會將我們註冊的密碼進行一次加密處理。然後當我們做登入作業的時候,會進行一次解密處理去和我們輸入的密碼匹配。
在Flask中的使用:
1.導包
# 导包 from werkzeug.security import generate_password_hash,check_password_hash
其中: generate_password_hash 是生成密碼 ; check_password_hash 是密碼驗證
2. 註冊帳號的時候用到 generate_password_hash
<span style="font-size: 15px;">@admin_blue.route('add_user') defadd_user():<br/># Adminuser是数据库中一张表的名字 , user:注册的账号 pass_hash: 注册的密码,此时注册的密码的是 123 add_user=Adminuser(user='admin',<span style="color: #ff0000;"><strong>pass_hash=generate_password_hash('123')</strong></span>) db.session.add(add_user) return'OK'</span>
此時我們註冊的密碼是「123」,當我們用到 generate_password_hash 將「123」加密的時候,資料庫裡面就變成:
3. 我們既然已經完成了註冊,就輪到登錄,當我們登入的時候,在輸入密碼的時候,就需要用到 check_password_hash來解密,進而驗證密碼
# 登录 @admin_blue.route('/login',methods=['get','post']) def login(): if request.method=='POST': username=request.form.get('username') password=request.form.get('password') if not all([username,password]): flash('请输入账号和密码') else: sqluser=Adminuser.query.filter(Adminuser.user==username).first() if not sqluser: flash('账号不正确') else: a=check_password_hash(sqluser.pass_hash,password) print(a) if a: session['admin_username']=username return redirect(url_for('admin.index')) else: flash('密码不正确') return render_template('admin/login.html')
總重點在於: generate_password_hash 是產生密碼 ; check_password_hash 是密碼驗證,其他的程式碼就是Flask中最簡單的註冊、登入。
以上是Flask裡引用雜湊密碼的方法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!