日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现md5加密_Python实现md5加密验证访问接口总结

發(fā)布時間:2025/4/16 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现md5加密_Python实现md5加密验证访问接口总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實現(xiàn)md5加密驗證訪問接口總結(jié)

作者:李祥權(quán)

【摘要】

在項目開發(fā)中,遇到用戶端點登陸接口需要加密驗證才可以登陸的情況,當我們需要訪問對方的接口時,為了保證訪問的安全性,使用python實現(xiàn)md5加密過程

【正文】

1、有某個應(yīng)用場景為采用xxx.xxx?UserID=&Token=xxx&url=xxxxx與對方接口,其中:

-xxx.xxx:是對方的接口URL

-UserID:比如是當前某一系統(tǒng)的登錄名

-Token:通過某種方式加密的訪問令版Token(下有詳述)

-url:端點登錄成功后需要轉(zhuǎn)向的網(wǎng)址,若沒有,則由對方直接轉(zhuǎn)到相關(guān)首頁

2、Token說明:

采用32位ToMd5(UserId + PublicKey +某種特別定義的日期格式),myToken = ToMd5(UserID + PublicKey + YYYYMMDD),md5的加密實現(xiàn)為:當我們要訪問對方某一url的時候需要匹配md5加密結(jié)果與Token值是否一致來實現(xiàn),比如Token值也是對方通過md5加密的一個值,那么雙方通過協(xié)商對UserId、PublicKey、日期來進行md5加密,如果加密結(jié)果即myToken與給我們的Token值一樣,即匹配正確,則進行下一步驗證

3、對方驗證方法和步驟:

(1)第一步:取Request.ServerVariables(“HTTP_REFERER”)是否來自某一特定系統(tǒng)的網(wǎng)址,具體以互相協(xié)商的網(wǎng)址為定義。若是相關(guān)網(wǎng)址,則進入第二部,否則端點登陸不成功。

(2)第二部:取傳遞的UserID值,和Token值。同時進行計算內(nèi)部Token值,若計算的內(nèi)部Token值與傳遞的Token值不一樣,端點登錄失敗,否則轉(zhuǎn)向第三步。

(3)第三步:取url值,若為空,則直接轉(zhuǎn)向首頁,否真轉(zhuǎn)向相關(guān)URL。

4、python實現(xiàn)的代碼如下:

# -*- coding: utf-8 -*-

import hashlib

from django.http import JsonResponse

from datetime import date

# md5加密接口

def to_md5(s):

md5 = hashlib.md5()

md5.update(s)

return md5.hexdigest()

def api_md5test(request):

try:

publib_key = 'sakds3297549017234095723905170950' # 此值由雙方協(xié)商

date_formate = '%Y%m%d' # 雙方協(xié)定

user_id = request.GET.get('UserID')

refer_url = ['http://oa.ebscn.com/api/gouc.asp',

'http://10.88.2.94/api/gouc.asp',

'http://10.88.2.91/api/gouc.asp']

token = request.GET.get('Token')

url = request.GET.get('url')

# 獲REFERER,告訴服務(wù)器我是從哪個頁面鏈接過來的

Refer = request.environ.get('HTTP_REFERER')

b = False

for item in refer_url:

if item == Refer:

b = True

break

if not b:

return JsonResponse({

'result': False,

'message': 'HTTP_REFERER不是來自相關(guān)網(wǎng)址',

'data': None

})

mytoken = to_md5(user_id + publib_key +

date.today().strftime(date_formate))

if mytoken != token:

return JsonResponse({

'result': False,

'message': 'Token值不匹配',

'data': None})

if url == '':

url = 'https://xxx.xxx.xxx' # 系統(tǒng)首頁網(wǎng)址

return JsonResponse({'result': True, 'data': url})

except Exception as e:

return JsonResponse({

'result': False,

'message': repr(e),

'data': None

})

總結(jié)

以上是生活随笔為你收集整理的python实现md5加密_Python实现md5加密验证访问接口总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。