Как написать метод Upload firebase с помощью ProgressBar из Activity?

Вам действительно не нужно использовать SecretKeyFactory. Вы можете создать ключ AES со следующим:

byte[] keyData = ........ 
SecretKeySpec key = new SecretKeySpec(keyData, "AES");

Если вы хотите сделать шифрование на основе пароля (PBE), просто выберите безопасный алгоритм хеширования, который даст вам хэш того же размера, что и требуемый ключ , Например, если вы хотите использовать 256-битный ключ для AES, вот способ построения ключа:

private Key buildKey(String password) throws NoSuchAlgorithmException, UnsupportedEncodingException {
  MessageDigest digester = MessageDigest.getInstance("SHA-256");
  digester.update(password.getBytes("UTF-8"));
  byte[] key = digester.digest();
  SecretKeySpec spec = new SecretKeySpec(key, "AES");
  return spec;
}

Редактировать: я бы рекомендовал не использовать MD5 и DES, если это не игровой проект, оба имеют недостатки и считаются устаревшими.

0
задан Frank van Puffelen 28 February 2019 в 03:56
поделиться