ValueError:密钥必须是128位长的XTEA

时间:2016-11-03 20:14:40

标签: encryption tcp websocket key xtea

我正在尝试加密数据并通过TCP套接字将其发送到我的服务器。但是我收到错误,ValueError:密钥必须是128位长,以下代码:

from xtea import *
from socket import *
import datetime
import time
import sys
clientsocket = socket(AF_INET,SOCK_STREAM)
clientsocket.connect(("xx.xx.xx.xx",1234))
key2="0wYwcOnn"
text = "$123456781|tx|id1^1.1^2015-09-29 16:38:44^2015-09-29 19:48:44"
x = new(key2, mode=MODE_ECB)
c = x.encrypt(text)
clientsocket.send(c)
recv = clientsocket.recv(1024)
print(recv)

有人可以对此发表评论吗?

2 个答案:

答案 0 :(得分:1)

将密钥大小增加到16个字节。

XTEA是一个带有128位密钥的64位块Feistel密码。由于"0wYwcOnn"是64位(充其量),误解是什么?

答案 1 :(得分:0)

XTEA需要128位(16字节)的密钥。

对于长度少于16个字节的键,一种可能的填充方案是简单地将其填充为空字节,直到它为16个字节为止。根据irc://irc.freenode.net/#python中的Wooble人说,这应该可以工作:

key2=struct.pack('16s', b"0wYwcOnn")
  • 它只是用空值填充丢失的字节,直到它为16个字节为止,否则我被告知。 (idk,我不做python编程)