背景
私のアプリケーションは現在、すべてのデータが通過しなければならない AES 暗号化および復号化ストリームが最も遅い部分であるボトルネックに達しています。これを克服するために、JNI と OpenSSL を介してこの暗号化をネイティブ コードに実装し、AES-NI や直接メモリ アクセスなどを利用できるようにする予定です (私のバッファは既に直接アクセスされているため、それらへのポインタを既に取得できます)。メモリ領域)
問題
データを暗号化または解読する必要があるたびに、キーを使用して OpenSSL 暗号を再作成するのは意味がありません。Java を使用している場合は、単純に Cipher インスタンスをクラスのフィールドとして格納しますが、暗号は C の「オブジェクト」であるため、これを行うことはできません。
質問
C の「オブジェクト」を Java クラスのインスタンスに結び付けて、その後の呼び出しで格納された「オブジェクト」を使用できるようにする方法。これは、「オブジェクト」ポインターを long として Java クラスに格納し、それを逆参照することに関係していると思いますが、これが完全にクロスプラットフォームであるかどうかはよくわかりません。
答え
は次のとおりです。
- 単純化
- 速い
- クロスプラットフォーム
御時間ありがとうございます!