標籤:port 擷取 get enc def hex server use odi
hashlib模組
主要用於加密相關的操作,(比如說加密字串)在python3的版本裡,代替了md5和sha模組,主要提供 sha1, sha224, sha256, sha384, sha512 ,md5 這些加密方式
import hashlib
m = hashlib.md5() #用md5加密的方式(md5加密後無法解密),建立一個md5的對象
m.update(b"Hello") #b代表二進位位元組bytes,把字串hello轉成位元組,然後加密;用b給一個變數轉換的方式,待查
m.update(bytes(‘hello‘,encoding=‘utf-8‘)) #與上面結果一樣,只是換成bytes函數,要加上encoding=‘utf-8‘
print(m.digest()) #2進位格式的加密後的字串
print(len(m.hexdigest())) #16進位格式的加密後的字串
PS:不同的加密方式,用法都同上,把md5換一下就行,下面以sha1為例:
# ######## sha1 加密方式########
hash = hashlib.sha1()
hash.update(‘admin‘)
print(hash.hexdigest())
flask模組 :
是一個web架構,可以開發介面
下面寫一個登入的介面,登入需要url username passwd
import flask
from flask import request,jsonify #引入請求,用來請求資料;引入json
server=flask.Flask(__name__) #建立一個服務,把當前這個python檔案當做一個服務
user=’admin’
p=’houning123’
server.config[“JSON_AS_ASCII”]=False #這句話是使傳回值的漢字在瀏覽器裡顯示正常
@server.route(‘/login‘,methods=[‘get‘]) #flask內建的裝飾器,這一步是把普通函數變成一個服務,括弧裡是路徑和擷取方法
def login():
username=request.values.get(‘username’) #指擷取到傳的key:“username”的值,把值賦給左邊的username
passwd=request.values.get(‘passwd’)
if username and passwd: #判斷使用者名稱密碼是否為空白
if username==user and passwd==p:
res={“code”:1000,”msg”:”登入成功”}
else:
res={“code”:2000,”msg”:”賬戶或密碼錯誤”}
return jsonify(res)
else:
return jsonify({“code”:1999,”msg”:”必填參數未填”}) #把字典轉化成json串格式
server.run(debug=True) #啟動服務,debug=True是指偵錯模式,如果改代碼,服務就會自動重啟
Python:hashlib加密模組,flask模組寫登入介面