我想散列从车辆收到的CAN消息。以下用Python编写的代码用于从车辆接收CAN消息(dev.recv()
)并打印接收到的消息(dev.send()
)。我想对dev.recv()
中存在的CAN消息进行哈希处理在使用dev.send()
发送消息之前,您可以使用此功能。这可能吗?如果可以,该怎么办?
from canard.hw import socketcan
dev = socketcan.SocketCanDev(’can0’)
dev.start()
while True:
f = dev.recv()
dev.send(f)
`
答案 0 :(得分:1)
"f"
收到的数据recv
的数据类型是什么。SocketCanDev
只是设备的包装器,而recv
的作用与read()函数非常相似。"f"
可能被解释为字节或字符数组。无论字节的格式如何,都对字节数组进行哈希处理 字符串。
并且,散列的结果不取决于输入格式或数据类型。 因此,就您而言,
while True:
f = dev.recv()
result = (hashFunction)(f)
dev.send(result) // result should in the data type that the function send can accept as a parameter
(hashFunction)
可以替换为哈希库中的实际函数,例如“ hashlib”。
答案 1 :(得分:0)
如果您对密码哈希感兴趣,则应该看看hashlib
有了它,您应该能够对消息进行散列并像这样发送散列
H = hashlib.new('sha256', message)
dev.send(H.digest())
如果您仍要发送散列之外的原始消息,则可以拨打两个电话send
。