Я пытаюсь использовать Cipher
с парой ключей RSA вместе с "AndroidKeyStore"
. Во всей документации по Android, которую я могу найти, примеры показывают Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding")
или Cipher.getInstance("RSA/ECB/PKCS1Padding")
. Оба из них вызывают одно и то же предупреждение в Android Studio:
Шифрование ECB не должно использоваться
Cipher # getInstance не следует вызывать с помощью ECB в качестве режима шифрования или без установки режима шифрования, потому что режим по умолчанию для android является ECB, что является неустойчивым.
Очевидно, я не могу опустить это или установить режим None
, потому что по умолчанию используется ECB. Если режим ECB небезопасен, какой режим я должен использовать?
Если я использую какой-либо другой режим (я знаю), я получаю NoSuchAlgorithmException: No provider found for RSA/{mode}/OAEPWithSHA-256AndMGF1Padding
. Может быть проблема с заполнением?
В любом случае, согласно документации Android KeyStore System, режим ECB, по-видимому, является единственным режимом блока шифрования, который он поддерживает при использовании RSA.