Просматривая документацию по Android, я нашел информацию о том, что модуль безопасности Jetpack androidx.security:security-crypto устарел, вот некоторые ссылки https://developer.android.com/privacy-and-security/cryptography#jetpack_security_crypto_library
https://android-review.googlesource.com/c/platform/frameworks/support/+/2761067
Однако я обнаружил, что модуль безопасности все еще используется, и информации об альтернативах не так много. Кроме того, я использую расширение Kotlin в своем проекте androidx.security:security-crypto-ktx:1.1.0-alpha06 для EncryptedSharedPreferences и не вижу никаких предупреждений об устаревании. Эта библиотека устарела? Что мне следует использовать вместо этого?
Кажется, так:
https://www.spght.dev/articles/04-06-2022/owasp-m2
https://x.com/Sp4ghettiCode/status/1786033489675944311
https://developer.android.com/privacy-and-security/cryptography#jetpack_security_crypto_library
Jetpack security crypto library is deprecated. This only affects cases where you have the following dependencies in your app module's build.gradle file:
dependencies {
implementation "androidx.security:security-crypto:1.0.0"
}
Нет идеи хорошей альтернативы. У этого есть некоторые странные сбои без какого-либо официального объяснения того, как с ними бороться, если они ожидаются:
https://issuetracker.google.com/issues/176215143
Прекрасный пример плохой практики прекращения поддержки библиотек от Google: 1. не объявляйте об устаревании на официальной странице (Developer.android.com/jetpack/androidx/releases/security); 2. не упоминайте, почему он устарел; 3. не давайте рекомендаций по вариантам миграции, чтобы уйти от этой библиотеки.
@Diego Он даже не стал широко известен и не имел относительно стабильного состояния, которое могли бы использовать все люди.
Привет, я являюсь первоначальным автором трех первых ссылок, перечисленных в ответе здесь. Источником на данный момент является последняя ссылка, упомянутая в ответе. Мы все еще ждем дополнительных подтверждений, но похоже, что JetSec Crypto действительно устарел.
@EdHolloway-Джордж в коммите в исходном коде даже предлагает, что использовать вместо этого: android.googlesource.com/platform/frameworks/support/+/… По сути, они говорят: «используйте SharedPreferences вместо EncryptedSharedPreferences; используйте File вместо EncryptedFile и KeyGenerator с AndroidKeyStore вместо MasterKey».
@EdHolloway-Джордж Как вы нашли здесь мой ответ? Кроме того, почему он устарел и что мы можем использовать вместо него? Использование SharedPreferences означает, что он менее безопасен... Разве у нас нет хорошей альтернативы?
Я считаю, что это зависит от библиотеки com.google.crypto.tink, и она устарела.