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檔案...