我正在写一个基本的TACACS客户端模块。我可以通过电话把包拿到网上结构包好吧,我已经和wireshark核对过了。但我不知道如何处理md5的字节异或,甚至不知道是否正确创建了哈希。TACACS的rfc说,从TACACS头和‘secret key’中提取特定的项,并对其加密五次,在每次运行期间连接上一个散列。见下文
def encrypt(packet, tac_key):
key = packet[4:8] + bytes(tac_key, 'utf-8') + packet[:1] + packet[2:3]
h1 = md5()
h1.update(key)
hash = h1.digest()
previous = h1.digest()
for i in range(2, 6):
new = md5()
key = key + previous
new.update(key)
hash += new.digest()
previous = new.digest()
return hash
数据包已经过了结构包你知道吗
body = struct.pack(fmt, TAC_AUTHEN_LOGIN, TAC_PLUS_PRIV_LVL_USER, TAC_PLUS_AUTHEN_TYPE_PAP, TAC_PLUS_AUTHEN_SVC_LOGIN,
user_len, port_len, rem_addr_len, data_len, bytearray(user, 'utf-8'),
bytearray(port, 'utf-8'), bytearray(data, 'utf-8)'))
这是正确的方法还是我不应该使用结构包然后加密它?你知道吗
我没有用服务器的响应头生成新的伪\u pad。因此,答复仍然模糊不清。你知道吗
相关问题 更多 >
编程相关推荐