- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个流媒体服务器,它利用加密技术来保护正在传输的数据。密码套件是从配置文件加载的,该文件允许用户插入他们想要的算法+密码模式(ECB、CBC、CTR,...)+填充。问题是某些模式(例如 ECB)或流密码算法不需要 IV,这在我尝试初始化密码时会出错。因此,我的代码不够动态,无法处理这些情况。我已经尝试在网上寻找一种方法来查找给定的算法/模式是否需要 IV,但什么也没找到。
有人知道怎么做吗?
提前致谢
最佳答案
几乎所有mode of operations需要 IV,但 ECB 除外,有些人甚至可能不称其为操作模式。另请参阅this question来自密码学的一小部分加密模式。 randomized encryption 需要 IV因此都有一个 IV 或 nonce(使用过一次的数字)。人们应该永远不要使用欧洲央行。
现在,您想要加密流。您应该使用 AES-GCM这是一个 authenticated encryption (AE) 模式,从此链接中,您可以看到 Netflix使用它。使用 AE,您可以同时拥有身份验证、完整性和加密。您也可以选择Chacha-poly1305这也是一个 AE。
TLS 1.3有 AES-GCM 和 Chacha-poly1305 作为密码套件。您应该选择 TLS 作为客户端和服务器之间的安全通信。记录层的碎片层的限制为2^14字节16.384 KB。在每个分片中,您可以检查消息是否真实且具有完整性,如果不正确,则重新向服务器请求。
关于java - 如何在 Java 中查找 Cipher 是否需要 IV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785603/
我是一名优秀的程序员,十分优秀!