0

我正在尝试加密数据并通过 TCP 套接字将其发送到我的服务器。但是我收到错误,ValueError: Key must be 128 bit long for the code 以下代码:

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)

任何人都可以对此发表评论吗?

4

2 回答 2

1

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

XTEA 是具有 128 位密钥的 64 位块 Feistel 密码。既然"0wYwcOnn"是 64 位(充其量)有什么误解?

于 2016-11-03T21:53:31.717 回答
0

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

对于长度小于 16 字节的键,一种可能的填充方案是简单地用空字节填充它,直到它达到 16 个字节。根据Woobleirc://irc.freenode.net/#python 的人的说法,这应该可行:

key2=struct.pack('16s', b"0wYwcOnn")
  • 它只是用空值填充丢失的字节,直到它达到 16 个字节,或者我被告知。(idk,我不做 python 编程)
于 2019-03-04T13:42:07.307 回答