有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java/Groovy:非确定性加密算法

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

因为我们使用Groovy,所以可以使用Java中的任何东西。虽然我不确定该开始研究哪种算法,但我并没有做太多的加密工作。理想情况下,我们希望有一个在JavaSE中可用或作为免费可用的Java库。此外,任何关于如何实现这些算法的详细链接都将受到高度赞赏


共 (1) 个答案

  1. # 1 楼答案

    其目的是避免两次使用相同的初始化向量。如果请求中有服务器在解密时知道的唯一内容,则可以将其用作初始化向量

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