MQTT 加密的话 端口变么
时间: 2023-07-19 20:36:03 浏览: 45
MQTT 加密通常使用的是 SSL/TLS 协议,因此需要使用另一个端口号来提供加密服务。默认情况下,非加密的 MQTT 服务使用的是 1883 端口,而加密的 MQTT 服务使用的是 8883 端口。这个端口号可以在 MQTT 服务器的配置文件中进行修改。
如果你使用的是 Mosquitto MQTT 服务器,你可以在配置文件中找到以下行:
```
# Port to use for the encrypted MQTT protocol.
#port 8883
```
将 `port` 行的注释符号 `#` 去掉,并将端口号改为你想要的加密端口号即可。修改完成后,需要重新启动 Mosquitto 服务器才能生效。
相关问题
MQTT服务器的端口号是个啥?
MQTT服务器的默认端口号是1883,它是用于MQTT协议的标准端口号。当然,在实际应用中,有些MQTT服务器也可能会使用其他端口号,比如8883等。如果你要连接到一个MQTT服务器,需要先确认它所使用的端口号。如果是默认端口号,那么在连接时可以不指定端口号,否则需要在AT指令中指定MQTT服务器的端口号。例如,如果MQTT服务器的端口号为8883,那么可以使用以下AT指令连接到MQTT服务器:
```
AT+CIPSTART="TCP","<服务器IP地址>",8883
```
其中,<服务器IP地址>为你所要连接的MQTT服务器的IP地址,8883为MQTT服务器的端口号。
MQTT HMACSHA256加密
MQTT HMACSHA256加密是一种用于保护MQTT消息传输安全的加密方式。它基于HMAC(Hash-based Message Authentication Code)算法和SHA256(Secure Hash Algorithm 256)散列函数,使用共享密钥对消息进行加密和验证,以防止未经授权的访问和篡改。
具体实现流程如下:
1. 生成一个对称密钥,这个密钥将用于加密和验证消息。
2. 在MQTT连接时,客户端和服务端交换此密钥。
3. 在发送MQTT消息时,客户端通过将消息和密钥输入到HMACSHA256算法中,生成一个哈希值。客户端将此哈希值和消息一起发送给服务端。
4. 服务端使用相同的密钥和HMACSHA256算法对接收到的消息进行哈希计算,然后将结果与客户端发送的哈希值进行比较,以验证消息的完整性和真实性。
5. 如果哈希值不匹配,则服务端会拒绝消息,并通知客户端。
通过使用MQTT HMACSHA256加密,可以有效地保护MQTT通信的安全性,并防止未经授权的访问和篡改。