Articles of шифрование

Android Keystore – может ли пользовательский ключ извлекаться root, если он настроен для этого пользователя?

Начиная с Android 4.3, у Android есть собственное хранилище ключей, где я могу хранить ключи и использовать их позже для шифрования / дешифрования. Здесь сказано и здесь, что каждый ключ может быть получен только его владельцем, и даже root не может его получить. Мой вопрос: не могу ли я написать программу, которая бы переключила мой […]

CryptographicException: Bad PKCS7 padding

Я вижу, что небольшой процент пользователей-производителей случайно сообщает об этом исключении, связанном с шифрованием / расшифровкой строк с помощью Xamarin.Android, но, к сожалению, я не могу воспроизвести его. Что может послужить причиной этого и / или каким образом я могу воспроизвести исключение, чтобы я мог найти решение / обходное решение? [CryptographicException: Bad PKCS7 padding. Invalid […]

Лучшая практика для дешифрования больших файлов с меньшим объемом памяти

Я хочу разработать приложение для Android для шифрования и дешифрования больших файлов (~ 500 МБ) с помощью RSA и некоторых симметричных алгоритмов шифрования. Как я могу это достичь? Какое наилучшее решение для использования на устройствах с несколькими ОЗУ MB? С уважением, Бобби

Шифрование и расшифровка с помощью режима AES ECB «BadPaddingException» в некоторых случаях

В приложении android / java public static void setKey(String myKey) { MessageDigest sha = null; try { key = new byte[]{(byte) '5', (byte) 'F', (byte) '8', (byte) 'p', (byte) 'J', (byte) 't', (byte) 'v', (byte) 'U', (byte) 'm', (byte) 'q', (byte) 'k', (byte) '7', (byte) 'A', (byte) 'M', (byte) 'v', (byte) 'b', (byte) 'q', (byte) […]

Как сохранить ключ с помощью устройства для хранения ключей Android

Я пытаюсь использовать Провайдер хранилища ключей Android, который стал доступен в Android 4.3 для безопасного сохранения секретного ключа, а затем использовать этот закрытый ключ для шифрования и декодирования данных. Я думаю, что я реализовал правильный подход и код для этого до сих пор, однако в настоящее время я столкнулся с нечетной проблемой, которую я не […]

Ошибка после того, как Fingerprint коснулся телефонов Samsung: android.security.KeyStoreException: ключевой пользователь не аутентифицирован

Мое приложение использует Android 6.0 Fingerprint API для защиты ключа AES в Android KeyStore. KeyGenParameterSpec ключ может использоваться только тогда, когда пользователь аутентифицируется датчиком отпечатков пальцев, потому что KeyGenParameterSpec инициализируется с помощью setUserAuthenticationRequired(true) . Когда пользователь касается датчика, я получаю инициализированный Cipher от обратного вызова onAuthenticationSucceeded(Cipher) и я использую его для дешифрования. Это прекрасно работает, […]

Как WhatsApp может быть сквозным зашифрованным, когда WhatsApp Web все еще работает

Я не уверен, что это подходящее место, но я уверен, что задаю очень глупый вопрос. Я разработчик, но ничего не знаю о новейших технологиях шифрования. Я читал на многих веб-сайтах, что многие годы компания WhatsApp приняла эту «технологию», и наши сообщения и все в настоящее время безопасны. У меня есть несколько вопросов, которые меня все […]

Последний незавершенный блок с CipherInputStream / CipherOutputStream, даже с дополнением AES / CBC / PKCS5Padding

На самом деле, я искал много из Интернета и в stackoverflow тоже для этого, Первоначально я не использовал прописку в моем шифровании и расшифровке, Но, наконец, я получил решение отсюда https://stackoverflow.com/a/10775577/1115788 И я обновил свой код с помощью дополнения как AES / CBC / PKCS5Padding, и эта же ошибка наступает, а последний блок не дешифрован […]

Как обрабатывать «последний незавершенный блок в расшифровке»

У меня есть простой класс, чтобы попытаться обернуть шифрование для использования в другом месте в моей программе. import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; public final class StupidSimpleEncrypter { public static String encrypt(String key, String plaintext) { byte[] keyBytes = key.getBytes(); byte[] plaintextBytes = plaintext.getBytes(); byte[] ciphertextBytes = encrypt(keyBytes, plaintextBytes); return new String(ciphertextBytes); } […]

Шифрование с помощью AES-256 и вектора инициализации

У меня есть вопрос, связанный с использованием вектора инициализации в AES-шифровании. Я ссылаюсь на следующие статьи / сообщения для создания шифрования в моей программе: [1] Java-битное шифрование на основе пароля AES [2] http://gmailassistant.sourceforge.net/src/org/freeshell/zs/common/Encryptor.java.html Я изначально следовал за решением erickson из первой ссылки, но, насколько я могу судить, PBKDF2WithHmacSHA1 не поддерживается моей реализацией. Итак, я обратился […]