欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年11月07日 15:16:53   作者:手可摘星辰。  
這篇文章主要介紹了python hmac模塊驗證客戶端的合法性,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

hmac模塊:

  比較兩個函數(shù)的密鑰是否一致:

import hmac
import os

msg = os.urandom(32)   #生成32位隨機字節(jié)碼

def wdc():
  key = b'wdc'  #密鑰
  ret = hmac.new(key,msg)   #將字節(jié)碼和key進(jìn)行加密(必須都為bytes類型)創(chuàng)建一個對象ret
  digest = ret.digest()  #消化
  return digest  #返回消耗后的密文

def yhf():
  key1 = b'wdc'  #密鑰
  ret1 = hmac.new(key1,msg)  #將字節(jié)碼和key1進(jìn)行加密(必須都為bytes類型)創(chuàng)建一個對象ret1
  digest1 = ret1.digest()   #消化
  return digest1 #返回消耗后的密文

wdc = wdc()
yhf = yhf()
result = hmac.compare_digest(wdc,yhf)  #比較兩個密文是否一致,返回Fales/True
print(result)  #輸出結(jié)果

驗證客戶端合法性:

  服務(wù)端:

import os
import hmac
import socket
secret_key = b'wdc'   #密鑰:必須為二進(jìn)制編碼
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) #發(fā)送一個32位的隨機字節(jié)碼
  h = hmac.new(secret_key,msg)   #將密鑰和生成的隨機字節(jié)碼匹配加密生成一個對象
  digest = h.digest()   #消化生成密文
  client_digest = conn.recv(1024)   #接收消息(客戶端生成的密文)
  return hmac.compare_digest(digest,client_digest)  #比較服務(wù)端和接收的客戶端的密文是否一致

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'   #密鑰:必須為二進(jìn)制編碼
sk = socket.socket()
sk.connect(('127.0.0.1',8080))
msg = sk.recv(1024)   #接收信息(接收生成的32位字節(jié)碼)
h = hmac.new(secret_key,msg)  #將密鑰和生成的隨機字節(jié)碼匹配加密生成一個對象
digest = h.digest()   #消化生成密文
sk.send(digest)   #發(fā)送生成的密文

sk.close()

以上就是python hmac模塊驗證客戶端的合法性的詳細(xì)內(nèi)容,更多關(guān)于python hmac模塊的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何在Django中添加沒有微秒的 DateTimeField 屬性詳解

    如何在Django中添加沒有微秒的 DateTimeField 屬性詳解

    這篇文章主要給大家介紹了關(guān)于如何在Django中添加沒有微秒的 DateTimeField 屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 對python GUI實現(xiàn)完美進(jìn)度條的示例詳解

    對python GUI實現(xiàn)完美進(jìn)度條的示例詳解

    今天小編就為大家分享一篇對python GUI實現(xiàn)完美進(jìn)度條的示例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python使用monkey.patch_all()解決協(xié)程阻塞問題

    Python使用monkey.patch_all()解決協(xié)程阻塞問題

    這篇文章主要介紹了Python使用monkey.patch_all()解決協(xié)程阻塞問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python修改MP3文件的方法

    Python修改MP3文件的方法

    這篇文章主要介紹了Python修改MP3文件的方法,可實現(xiàn)刪除MP3中圖片文件的功能,需要的朋友可以參考下
    2015-06-06
  • Python time.time()方法

    Python time.time()方法

    這篇文章主要介紹了詳解Python中time.time()方法的使用的教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • Python使用一行代碼獲取上個月是幾月

    Python使用一行代碼獲取上個月是幾月

    本文介紹的關(guān)于Python時間日期處理,日期時間處理在實際應(yīng)用場景中無處不在,所以這也成了編程語言中必不可少的模塊,本文主要給大家介紹Python使用一行代碼獲取上個月是幾月的相關(guān)知識,感興趣的朋友一起看看吧
    2018-08-08
  • 把Anaconda中的環(huán)境導(dǎo)入到Pycharm里面的方法步驟

    把Anaconda中的環(huán)境導(dǎo)入到Pycharm里面的方法步驟

    這篇文章主要介紹了把Anaconda中的環(huán)境導(dǎo)入到Pycharm里面的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python裝飾器底層原理詳解

    python裝飾器底層原理詳解

    這篇文章主要介紹了python裝飾器底層原理講解,被裝飾對象加上裝飾器,被裝飾對象獲得了更強大的功能,更多相關(guān)內(nèi)容,需要的朋友可以參考一下
    2022-07-07
  • numpy中的nan和inf,及其批量判別、替換方式

    numpy中的nan和inf,及其批量判別、替換方式

    在Numpy中,NaN表示非數(shù)值,Inf表示無窮大,NaN與任何值計算都是NaN,Inf與0相乘是NaN,其余情況下與Inf運算仍為Inf,可以使用np.isnan(), np.isinf(), np.isneginf(), np.isposinf(), np.isfinite()等函數(shù)進(jìn)行批量判別,返回布爾值數(shù)組
    2024-09-09
  • python關(guān)于字典及遍歷的常用方法

    python關(guān)于字典及遍歷的常用方法

    這篇文章主要介紹了python關(guān)于字典及遍歷的常用方法,字典的鍵可以是字符串、整數(shù)、元組或字典。字典的值也可以是字符串、整數(shù),文章圍繞主題展開更多詳細(xì)的內(nèi)容,需要的小伙伴可以參考一下
    2022-06-06

最新評論