暗号化されたクエリ パラメータを含むリンクをユーザーに提供する必要がある Groovy アプリケーションに取り組んでいます。現在、すべてのリンクに同じ IV を使用する AES 暗号化アルゴリズムを使用しています。これが悪いことであることはわかっています (したがって切り替えたい理由です) が、これが行われた理由は、クエリ パラメーターのサイズを制限するためでした (各クエリ パラメーターに base64 でエンコードされた 16 バイトの初期化ベクトルを含めると、リンクが非常に長くなります)。非決定論的アルゴリズムに切り替えて、クエリ データに必要なランダム性を持たせながら、クエリ パラメータに IV を格納する必要がないようにしたいと考えています。
Groovy を使用しているため、Java から何でも使用できます。暗号化作業はあまり行っていませんが、どのアルゴリズムを調べ始めればよいかわかりません。理想的には、Java SE で利用できるものか、自由に使用できる Java ライブラリが必要です。また、これらのアルゴリズムを実装する方法に関する詳細へのリンクも高く評価されています。