django使用rest_framework API認證

  1. 調用API的時候需要認證,直接在暴露在url中肯定不行,先試試MD5加密:


  2. import md5
    
    passwd  = md5.md5('fangniu508')
    
    print passwd.hexdigest()


    輸出:4a1ebe10d59f1b149ed6338d9f586679


     

  使用url的時候http://127.0.0.1?username=root&passwd=4a1ebe10d59f1b149ed6338d9f586679

  貌似可以?但依然是密碼md5值暴露,只要密碼不變,MD5值也不會變,別人一複製url就完了,所以不可行。。。


3.加入時間戳

 

import md5
import time

passwd  = md5.md5('fangniu508')
time_str = time.time()
token_str = '%s\%s' %(passwd,time_str)

print md5.md5(token_str).hexdigest()
print time_str

輸出:

8caff0592ed7cc5582e3d83cc103f0bc

1456710878.23

而且,每次運行結果都不一樣,因爲時間戳一直都在變化,別人複製url就基本上不行;

此外,再加入一個過期時間,基本上就無法暴力破解了

如在服務器端加120秒過期, expire_time = 120,

甚至加入重試次數 retry_count=1,

最後可以保證url不可篡改

不過現在使用hashmac加密API的更多,亞馬遜也是,以後再研究研究吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章