Решение: использовать другой алгоритм шифрования или использовать lib Spongy Castle .
Полезная lib: Nimbus JOSE JWT Spongycastle ,если вам нужна помощь в смешивании jwt с губчатым замком.
Почему это не работает для вас: это особенность используемого вами устройства.Некоторые устройства поддерживают алгоритм PBKDF2withHmacSHA256, а другие - нет.
Как я пришел к такому выводу: Сначала я подумал, что это может быть простая опечатка, но я нашел в JJWT github, что, хотя проблема действительно существовала, она уже была исправлена.Поскольку проверка теперь использует equalsignorecase, опечатка не будет иметь значения.Вы можете подтвердить в код .
Тогда я подумал, что это может быть версия для Android или Java.Но я обнаружил, что с момента выпуска java 8 он уже реализован.
Я думал, что это может быть версия для Android, но он работает с API 26 .
Я также протестировал код, который вы используете, и он работал отлично, поэтому никаких проблем не возникнет.Затем я много исследовал, видел некоторые другие вопросы , люди, имеющие такую же проблему с другими библиотеками и другими алгоритмами .
Дополнительно: Существует код от k3v , который, вероятно, может помочь вам (используя Spongy Castle):
PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator(new SHA256Digest());
generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt, iterations);
KeyParameter key = (KeyParameter)generator.generateDerivedMacParameters(keySizeInBits);