Создать симметричный ключ в android, который можно использовать для создания Json Web Token
Наша внешняя сторона следовала методу генерации симметричного ключа с помощью API веб-криптографии:
const tempKey = await crypto.subtle.deriveKey(
{
name: 'PBKDF2', salt: salt,
iterations: 100000, hash: 'SHA-256'
},
importedPassword,
{name: 'AES-GCM', length: 256},
true,
['encrypt']
);
Из чего я попытался интерпретировать 1-й параметр, который должен сгенерировать PBKDF2:
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
KeySpec keySpec = new PBEKeySpec(passphraseOrPin).toCharArray(), salt.getBytes(), iterations, outputKeyLength);
SecretKey secretKey = secretKeyFactory.generateSecret(keySpec);
Тогда я совершенно не понимаю 3-й параметр, в котором он пытается запустить алгоритм AES с длиной 256 на сгенерированномSecretKey
. Как это сделать в андроиде? а зачем это нужно или выгодно??
1 ответ
Я не знаю этого API, но предполагаю, что он используется для определения подходящего количества бит для вывода из KDF. он на самом деле не работает / не использует AES для чего-либо здесь
в документации для этого параметра говорится:
derivedKeyAlgorithm
- объект, определяющий алгоритм, для которого будет использоваться производный ключ.
что кажется последовательным