Вы можете использовать поток javax.crypto.Cipher [Input | Output] для чтения / записи ваших данных;тем не менее, вам придется применять в коде функцию однократной записи ... возможно, сравнивая данные с хешем SHA или что-то в этом роде, чтобы убедиться, что они не были изменены.
Я столкнулся с opensource икоммерческие менеджеры лицензий на Java ... вы можете искать вокруг, чтобы не изобретать велосипед.
Кроме того, вы, возможно, захотите изучить инструменты запутывания, по крайней мере, для вашего чувствительного API, если вы хотите сохранитьпользователи от его декомпиляции.
Надеюсь, это поможет.