我正在开发一个Groovy应用程序,它必须为用户提供一个包含加密查询参数的链接。目前,我们使用AES加密算法,所有链路都使用相同的IV。我们知道这很糟糕(这就是我们想要切换的原因),但这样做的原因是为了限制查询参数的大小(每个查询参数都包含一个base64编码的16字节初始化向量,这使得链接非常长)。我们希望切换到非确定性算法,以便在查询数据中具有所需的随机性,但不必在查询参数中存储IV。
因为我们使用的是Groovy,所以可以使用Java中的任何东西。虽然我没有做太多的加密工作,但我不确定应该开始研究哪种算法。理想情况下,我们希望它在Java中可用,或者作为可免费使用的Java库使用。此外,任何关于如何实现这些算法的细节链接都是非常感谢的。
发布于 2014-06-18 17:18:29
其目的是不使用相同的初始化向量两次。如果您在请求中有一些服务器在解密时知道的独特内容,您可以将其用作初始化向量。
否则,您可以简单地使用计数器作为初始化向量。保留一个中央计数器,每次加密时都会增加该计数器,并将该计数器放在加密数据的前面。然后将该计数器扩展为16字节的初始化向量。
https://stackoverflow.com/questions/24276341
复制相似问题