如何哈希CAN消息?

时间:2019-02-18 08:06:20

标签: python cryptography

我想散列从车辆收到的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)

`

2 个答案:

答案 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