89-python- hmac 模块

hmac 模块用于加密文件 类似于 hashlib 模块

server
import socket
import os
import hmac
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()
secret_key = b'q'
def check_conn(conn):
    msg = os.urandom(32)    # 随机 32 位组成的 bytes
    conn.send(msg)
    h = hmac.new(secret_key,msg)    # 比较 密文 是否匹配
    digest = h.digest()             # 加密后的
    client_digest = conn.recv(1024)
    return hmac.compare_digest(digest,client_digest)

conn,addr = sk.accept()
res = check_conn(conn)
if res:
    print('符合')
    conn.close()
else:
    print('不符合')
    conn.close()

sk.close()

client
import socket
import os
import hmac
secret_key = b'q'
sk = socket.socket()
sk.connect(('127.0.0.1',8080))
msg = sk.recv(1024)
h = hmac.new(secret_key,msg)
digest = h.digest()
sk.send(digest)
sk.close()


posted @ 2018-11-06 20:44  _Q  阅读(93)  评论(0)    收藏  举报