私の仕事中のプロジェクトは、Jackson JSONシリアライザーを使用して、RESTサービスに送信するために一連のJavaオブジェクトを文字列に変換しています。
これらのオブジェクトの一部には機密データが含まれているため、これらのオブジェクトをJSON文字列にシリアル化し、gzipで圧縮してから、AES
;を使用して暗号化するカスタムシリアライザーを作成しました。
これにより文字列がバイト配列に変換されるため、コーデックのBase64エンコーダーを使用してバイト配列を文字列に変換します。Apache commons
RESTインターフェースの背後にあるカスタムデシリアライザーは、このプロセスを逆にします。
base64 decode -> decrypt -> decompress -> deserialize using default Jackson deserializer.
Base64
エンコーディングは出力のサイズを増加させます(シリアル化のgzipステップはこの増加を改善するのに役立つことを目的としています)ので、より効率的な代替手段があるかどうかをGoogleで確認しました。これにより、 Ascii85エンコーディングを次のように起動したこの以前のスタックオーバーフロースレッドにつながりました。より効率的な代替手段-
Base64
出力のサイズに33%を追加し、出力のAscii85
サイズに25%を追加します。
いくつかのJavaAscii85実装(Apache pdfboxなど)を見つけましたが、エンコーディングを使用するのは少し不安です-誰もそれを使用または実装していないようです。これは、Base64の慣性が大きいことを意味する場合もあれば、代わりにAscii85にはいくつかの奇妙な問題があります。
誰かがこの主題についてもっと知っていますか?Ascii85に問題があり、代わりにBase64を使用する必要がありますか?