gpt4 book ai didi

java - 用于加密 UDP 数据包的密码是什么?

转载 作者:行者123 更新时间:2023-11-29 04:00:31 24 4
gpt4 key购买 nike

我有一个应用程序可以通过 UDP 进行时间敏感的通信(例如视频流或游戏)。数据包可能会丢失,不需要重传。

我应该使用什么密码来加密数据报?

我倾向于 ECB 模式下的河豚。我知道 ECB 模式有问题,但我需要支持丢失的数据包,所以加密不能依赖以前的 block 。 是否有更好的密码或模式可以用来减少 issues with ECB mode并且仍然允许丢失数据包?

(我想保留所有纯 Java,所以我不能使用 DTLS。)

最佳答案

计数器模式 (CTR) 中的 AES 是一种可行的选择。建立连接时,您将以发送和接收程序都知道的随机选择值启动计数器。如果每个视频数据包包含一个足够长的序列号 (n),不会在单个连接中重复,则接收程序可以将其添加到初始计数器值以获得用于计数器的值加密该数据包。

当然,对于长于一个 block 的消息,您需要在一个数据包内多次递增计数器。我会确定最长传输的数据包有多少 block ,例如 16 个 block ,并为数据包中的第一个 block 使用计数器值 16*n16*n+1 第二个,依此类推。

关于java - 用于加密 UDP 数据包的密码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3868829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com