Я пытаюсь использовать Cipher
с парой ключей RSA вместе с "AndroidKeyStore"
. Во всей документации по Android я могу найти, примеры показывают Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding")
или Cipher.getInstance("RSA/ECB/PKCS1Padding")
. Оба из которых придумали же предупреждение на Android Studio:Шифр с режимом ECB не должен использоваться
ECB Шифрование не следует использовать
Cipher # деЫпзЬапс не должен быть вызван с ЕЦБ в качестве шифра режима или без установки режима шифрования, так как режим по умолчанию на Android - это ECB, что небезопасно.
Очевидно, я не могу опустить его или установить режим None
, поскольку по умолчанию используется ECB. Если режим ECB небезопасен, какой режим я должен использовать?
Если я использую какой-либо другой режим (я знаю), я получаю NoSuchAlgorithmException: No provider found for RSA/{mode}/OAEPWithSHA-256AndMGF1Padding
. Может быть проблема с заполнением?
В любом случае, согласно документации Android KeyStore System, режим ECB, по-видимому, является единственным режимом блока шифрования, который он поддерживает при использовании RSA.
Отправлено [выпуск 204099] (https://code.google.com/p/android/issues/detail?id=204099) – Bryan