Вот это явно лишнее.
Мы уже львиную долю безопасности потеряли на ключе в лаунчере, а Вы предлагаете еще и в клиент его положить на всеобщее обозрение.
Зачем клиенту расшифровывать сессию? Он строку валидной сессии может передать целиком, без всяких расшифровок(что успешно и делает), а скрипт апдейтом просто стирает данные о сессии из базы. То есть результат в точности как и у Вас, но мы палим ключ только 1 раз в лаунчере.
Спасибо за статью, с некоторыми отступлениями применил Ваш метод.
Осталось рассказать людям как скомпилировать лаунчер так, чтоб его не вскрыли банально открыв архиватором. В этом есть загвоздка - я использую исходники бухаря(не знаю как дела на остальных). При компилировании .exe с помощью jar2exe и пряча классы у меня перестает работать функция распаковки нативов из jar, соответственно клиент с таким лаунчером не запустить.
Если кто-нибудь подскажет решение проблемы буду благодарен.
Есть отдельная тема.