#實現是通過時間戳+秘鑰進行 md5 加密處理#使用rest_framework ,首先要安裝pip去安裝djangorestframework ,這個模組
#import
hashlib
import
time
from django.conf import
settings
from rest_framework.views import
apiview
from rest_framework.response import
response
from api import
models
from api import
service
#服務端臨時測試
key = '
alksdgjaldks'#
解密def
gen_key(key,ctime):
key_str = '
{}|{}
'.format(key,ctime)
md5 =hashlib.md5()
md5.update(key_str.encode(
'utf-8'))
return
md5.hexdigest()
class
assettest(apiview):
defget(self,request):
return response("
get ok ")
defpost(self,request):
result =
#拿到key 和ctime ,md5 正加密處理和請求的資料進行校驗
sign = request._request.get.get('
sign')
ctime = request._request.get.get('
ctime')
sign_key =gen_key(key,ctime)
if sign !=sign_key:
result[
'status
'] =false
result[
'data
'] = '
檢驗不成功
'return response(result)
客戶端測試api
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import
requests
import
time,hashlib
#通過雙方有key 的方式進行驗證,
key = '
alksdgjaldks
'ctime =time.time()
defgen_key():
key_str = '
{}|{}
'.format(key,ctime)
md5 =hashlib.md5()
md5.update(key_str.encode(
'utf-8'))
return
md5.hexdigest()
#通過雙方有key 的方式進行驗證
ret =requests.post(
url = '
',params =
)print(ret.text)
注意測試url路由
url(r'^test',views.assettest.as_view()),#cbv 寫法上面是簡單的加密,但是若劫持url依然可以去訪問,所進一步進行修改
key = 'alksdgjaldks'#
解密def
gen_key(key,ctime):
key_str = '
{}|{}
'.format(key,ctime)
md5 =hashlib.md5()
md5.update(key_str.encode(
'utf-8'))
return
md5.hexdigest()
sign_record ={}
class
assettest(apiview):
defget(self,request):
return response("
get ok ")
defpost(self,request):
result =
#拿到key 和ctime ,md5 正加密處理和請求的資料進行校驗
sign = request._request.get.get('
sign')
ctime = request._request.get.get('
ctime')
server_time = int(time.time()*1000)
if server_time - int(ctime) > 5000:
result[
'status
'] =false
result[
'data
'] = '
證書已經過期!
'return
response(result)
if sign in
sign_record:
result[
'status
'] =false
result[
'data
'] = '
證書已經使用!
'return
response(result)
if sign !=gen_key(key,ctime):
result[
'status
'] =false
result[
'data
'] = '
檢驗不成功
'return
response(result)
sign_record[sign] =ctime
return response(result)
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import
requests
import
time,hashlib
#通過雙方有key 的方式進行驗證,
key = '
alksdgjaldks
'ctime = int(time.time() * 1000)
defgen_key():
key_str = '
{}|{}
'.format(key,ctime)
md5 =hashlib.md5()
md5.update(key_str.encode(
'utf-8'))
return
md5.hexdigest()
#通過雙方有key 的方式進行驗證
ret =requests.post(
url = '
',params =
)print(ret.url,ret.text)
學習筆記 ajax請求網路api
不囉嗦,直接上 1 在瀏覽器輸入 深圳 你會看到如下結果 他返回的是json資料 api.asilu.com getname date 2018 09 10 id 101280601 t 1536508800 api.asilu.com getname date 2018 09 10 id 1012...
實習總結之JAVA請求API資料
通過httpclient請求,有兩種請求方式 get請求和post請求。get請求 string url 請求的url 先獲取連線客戶端工具 獲取構建url的uribuilder uribuilder uribuilder new uribuilder url 由於get請求的引數都是拼裝在url位...
登入密碼加密鹽和API請求授權碼sign
登入密碼加密鹽 md5 data password sing ty 紅色字元就是組裝密碼用的,防止人家暴力破解之後直接看到密碼 sign授權碼 sign 加密需要 客戶端工程師,解密 伺服器端工程師 1.sign授權碼在header頭中組裝了did,version等資料,伺服器工程師把sign解密之...