码迷,mamicode.com
首页 > 其他好文 > 详细

客户合法性校验(密文hamc方法)

时间:2019-10-22 13:27:09      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:png   加密   就是   mic   accept   sock   服务   fail   cep   

1.import os
    os.urandom(num) 随机出一个num位的随机bytes
    
2.import hamc
    md5_obj = hmac.new(盐,随机字符串)
    r = md5_obj.digest()
    拿到一个bytes的结果,也就是密文
    
补充:hashlib的加密
        # md5_obj = hashlib.md5(sor)
        # md5_obj.update(r_str.encode(‘utf-8‘))
        # result = md5_obj.hexdigest()
        
        
        
#server层
import socket
import hashlib
import os
import hmac
sk = socket.socket()
sk.bind((127.0.0.1,8080))
sk.listen()

conn,addr = sk.accept()
#
sor = balex
#随机字符串
r_str = os.urandom(16)# 随机出一个16位长度的bytes
#将随机字符串先发送到客户端client
conn.send(r_str)
#用hmac将盐和字符串加密成密文,结果是一个md5对象
md5_obj = hmac.new(sor,r_str)
#result此时是bytes类型,不需要进行编码解码等操作
result = md5_obj.digest()
#接受来自客户端的密文进行合法性判断
msg = conn.recv(1024)
if msg == result:
    #如果服务器端的密文和客户端发送过来的密文相匹配,则表示合法
    conn.send(bsuccess)
else:
    conn.send(bfailed)


conn.close()
sk.close()



#client层
import socket
import hmac
sk = socket.socket()
sk.connect((127.0.0.1,8080))
sor = balex
#先接收来自服务器的随机字符串
r_str = sk.recv(1024)
#用hmac将盐和字符串加密成密文,结果是一个md5对象
md5_obj = hmac.new(sor,r_str)
#result此时是bytes类型,不需要进行编码解码等操作
result = md5_obj.digest()
#将密文发送给服务器端server进行客户端合法性校验
sk.send(result)
#接收服务器对客户端合法性的反应消息
msg = sk.recv(1024)
print(msg)
sk.close()



图片理解:
技术图片

 

客户合法性校验(密文hamc方法)

标签:png   加密   就是   mic   accept   sock   服务   fail   cep   

原文地址:https://www.cnblogs.com/god-for-speed/p/11719058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!