Java/常规 : Non Deterministic Crypto Algorithm

标签 java algorithm encryption groovy non-deterministic

我正在开发一个 Groovy 应用程序,它必须为用户提供一个包含加密查询参数的链接。目前我们使用 AES 加密算法,所有链接都使用相同的 IV。我们知道这很糟糕(因此我们想要切换的原因),但这样做的原因是限制查询参数的大小(包括一个 base64 编码的 16 字节初始化 vector 和每个查询参数使得链接很长)。我们想切换到非确定性算法,以便我们在查询数据中具有所需的随机性,但不必将 IV 存储在查询参数中。

因为我们使用的是 Groovy,所以我们可以使用 Java 中的任何东西。虽然我不确定要开始研究哪种算法,但我并没有做太多的加密工作。理想情况下,我们想要一个在 Java SE 中可用的或作为可免费使用的 Java 库的。此外,非常感谢任何包含有关如何实现这些算法的详细信息的链接。

最佳答案

目的是不要两次使用相同的初始化 vector 。如果服务器在解密时知道请求中有一些独特的东西,则可以将其用作初始化 vector 。

否则,您可以简单地使用计数器作为初始化 vector 。保留一个中央计数器,每次加密时都会增加该计数器,并将该计数器放在加密数据的前面。然后将这个计数器扩展为一个 16 字节的初始化 vector 。

关于Java/常规 : Non Deterministic Crypto Algorithm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24276341/

相关文章:

algorithm - 为什么我的递归函数在 R 中这么慢?

java - 客户端使用java解密

java - 在Java中读取unicode文本并显示在JLabel上?

java - libGDX scene2d TextFieldListener 在 Android 上未接收 DELETE 键

algorithm - 收集循环的引用计数最简单的增强是什么?

linux -/dev/random 被认为是真正随机的吗?

ios - 在 iOS 上使用 SHA256 哈希

java - 如何在不设置环境变量的情况下使用PowerShell脚本在Tomcat中绑定(bind)JDK

java - 在 java 中显示带有 arraylist 的 .txt 文件

algorithm - prim的MST算法的邻接矩阵复杂度和邻接表线性搜索的复杂度一样吗?