Есть ли хороший пример того, как зашифровать и расшифровать изображения и другие файлы с помощью AES на Android?
java
android
encryption
aes
h4rd4r7c0r3
источник
источник
Ответы:
Предупреждение: этот ответ содержит код, который вы не должны использовать, поскольку он небезопасен (с использованием SHA1PRNG для получения ключа и с использованием AES в режиме ECB)
Вместо этого (по состоянию на 2016 год) используйте PBKDF2WithHmacSHA1 для получения ключа и AES в режиме CBC или GCM (GCM обеспечивает как конфиденциальность, так и целостность)
Вы можете использовать такие функции:
И вызывайте их так:
Это должно сработать, сейчас я использую аналогичный код в проекте.
источник
Как упоминал Nacho.L, используется производное PBKDF2WithHmacSHA1 , поскольку оно более защищено .
источник
источник
Старый вопрос, но я обновляю ответы, поддерживающие Android до и после публикации 4.2, и с учетом всех последних изменений, согласно блогу разработчиков Android.
Плюс я оставляю рабочий пример в моем репозитории на github .
источник
android.util.Base64.encode(bytes, Base64.DEFAULT)
и вместо использования библиотеки кодеков Apache Commonsandroid.util.Base64.decode(decryptedData, Base64.DEFAULT)
?Если вы шифруете текстовый файл, вам может пригодиться следующий тест / образец. Он делает следующее:
и, наконец, буферизует его
источник
SecureRandom
для вывода ключей. Если вы хотите узнать, как создать экземпляр шифра, проверьте ответ Эриксона здесь . Не используйте статический IV (для одного и того же ключа) и используйте PBKDF2 для преобразования пароля -> ключа. Обратите внимание, что неаутентифицированный шифр обеспечивает конфиденциальность только в том случае, если он не используется в транспортном протоколе. Если вы хотите помочь, вы можете сжечь и другие ответы (и проголосовать за мои комментарии там) :)Для шифрования / дешифрования AES / CBC / PKCS7 просто скопируйте и вставьте следующий код и замените
SecretKey
иIV
своим собственным.источник
Шифрование / дешифрование AES в Android
Шифрование / дешифрование AES в c #
источник
Простой API для шифрования AES на Android. Это Android-аналог библиотеки AESCrypt Ruby и Obj-C (с теми же значениями по умолчанию):
https://github.com/scottyab/AESCrypt-Android
источник
Вот простой фрагмент кода, работающий для шифрования и дешифрования AES.
Надеюсь, это помогло ...
источник
Чтобы добавить надувной замок в проект Android: https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16/1.45
Добавьте эту строку в свое Основное действие:
источник
Попробуйте с приведенным ниже кодом, он работает для меня.
источник