python hmac模組驗證客戶端的合法性

2022-09-29 22:30:36 字數 1767 閱讀 6546

hmac模組:

比較兩個函式的金鑰是否一致:

import hmac

import os

msg = os.urandom(32) #生成32位隨機位元組碼

def wdc():

key = b'wdc' #金鑰

ret = hmac.new(key,msg) #將位元組碼和key進行加密(knirsga必須都為bytes型別)建立乙個物件ret

digest = ret.digest() #消化

return digest #返回消耗後的密文

def yhf():

key1 = b'wdc' #金鑰

ret1 = hmac.new(key1,msg) #將位元組碼和key1進行加密(必須都為bytes型別)建立乙個物件ret1

digest1 = ret1.digest() #消化

return digest1 #返回消耗後的密文

wdc = wdc()

yhf = yhf()

result = hmac.compare_digest(wdc,yhf) #比較兩個密文是否一致,返回fales/true

print(result) #輸出結果

驗證客戶端合法性:

服務端:

import www.cppcns.comos

import hmac

import socket

secret_key = b'wdc' #金鑰:必須為二進位制編碼

sk = socket.socket()

sk.bind(('127.0.0.1',8080))

sk.listen()

def check_conn(conn):

msg = os.urandom(32) #生成乙個32位bytes型別隨機碼

conn.send(msg) #傳送乙個32位的隨機位元組碼

h = hmac.new(secret_key,msg) #將金鑰和生成的隨機位元組碼匹配加密生成乙個物件

digest = h.digest程式設計客棧() #消化生成密文

client_digest = conn.recv(1024) #接收訊息(客戶端生成的密文)

return hmac.compare_digest(digest,client_digest)www.cppcns.com #比較服務端和接收的客程式設計客棧戶端的密文是否一致

conn,addr = sk.accept()

res = check_conn(conn)

if res:

print('合法的客戶端')

conn.close()

else:

print('不合法的客戶端')

conn.close()

sk.close()

客戶端:

import hmac

import socket

secret_key = b'wdc' #金鑰:必須為二進位制編碼

sk = socket.socket()

sk.connect(('127.0.0.1',8080))

msg = sk.recv(1024) #接收資訊(接收生成的32位位元組碼)

h = hmac.new(secret_key,msg) #將金鑰和生成的隨機位元組碼匹配加密生成乙個物件

digest = h.digest() #消化生成密文

sk.send(digest) #傳送生成的密文

sk.close()

簡訊驗證模組

最近使用到手機簡訊校驗,分享一下我的實現方式,也希望能夠了解更好的實現方式 使用簡訊平台 阿里大魚 阿里巴巴 使用語言 node.js 資料庫 redis 可用任意資料庫或檔案操作替代 實現 如下 安裝依賴 redis 資料庫操作模組 npm install redis taobao api 操作模...

牛客密碼驗證合格

題目描述密碼要求 1 長度超過8位 2.包括大小寫字母 數字 其他符號,以上4種至少三種 3.不能有相同長度超過2的子串重複 說明 長度超過2的子串 輸入描述一組或多組長度超過2的字串。每組佔一行 輸出描述如果符合要求輸出 ok,否則輸出ng public class adminpassword i...

php 語法驗證 PHP使用者登入驗證模組

這篇文章介紹的內容是關於php使用者登入驗證模組 有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下 實現使用者登入 1 建立登入表單 登入表單的html 如下 user login alert textinput btn table 使用者名稱 密碼 將以上 儲存為login.php檔案...