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

Сохранение учетных данных в приложении для Android

Как мы можем безопасно хранить данные учетных данных для доступа к smtp-серверу в приложении Android? Эти данные являются константами, и только разработчик должен их знать. В настоящий момент они хранятся в коде, но это небезопасно, потому что их можно увидеть, декомпилировав приложение. Можно ли использовать систему Android Keystore для этой цели и как? И самое […]

Расширение SSL для приложений Android

Я использую приложение Android для общения, которое отправляет HTTPS-запрос для определенных функций, возможно ли читать «читаемый-расшифрованный» пакет, который отправляется приложением? Я пробовал настройку прокси-сервера с помощью Fiddler и ProxyDROID, но он только показал мне результаты Web Broweser, а не приложения Sniffing пакеты с использованием Shark будут зашифрованными пакетами Изменить: я использовал Fiddler для контроля пакетов, […]

Если я использую SSLSocket в Android и жесткий код, код доступа к доверенности в исходном коде небезопасен?

Я использую java-SSLSocket для безопасного подключения приложения Android к серверу. Сертификат находится в доверительной собственности. Но код доступа к доверенности, по-видимому, требуется для соединения, и поэтому он в настоящее время жестко закодирован в устройство. Я мало что знаю о PKI, но это не кажется безопасным. Я связываю доверенное хранилище с приложением в папке с исходными […]

Шифрование и дешифрование xml

Я делаю приложение, в котором я должен зашифровать xml с моей стороны и отправить его на сервер, и в ответ я получу xml, и я должен его расшифровать. Я не собираюсь зашифровывать и расшифровывать. Мой код выглядит следующим образом <?xml version='1.0' encoding='utf-8'?><adm_auth_req><user_name>user.s7</user_name><password>gspcsmo</password></adm_auth_req> Я использую этот код для шифрования и расшифровки его public string encryptData(string key, […]

IllegalBlockSizeException при попытке шифрования и расшифровки строки с помощью AES

У меня есть жесткий ключ, с которым я хочу зашифровать строку перед ее хранением в SharedPreferences . Это код, который у меня есть до сих пор: public class TokenEncryptor { private final static String TOKEN_KEY = "91a29fa7w46d8x41"; public static String encrypt(String plain) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); AlgorithmParameterSpec ivSpec = new IvParameterSpec(new byte[16]); […]

Android KeyStore System – Сохранение KeyPair?

В настоящее время я пытаюсь собрать действующую реализацию KeyStore в своем приложении для Android. В настоящее время я KeyStore против минимального API, KeyStore 18, чтобы я мог полностью использовать закрытый KeyStore для своего приложения. Я KeyPair создать n количество объектов KeyPair и сохранить их в KeyStore для последующего поиска. Я посмотрел на этот вопрос , […]

Расшифровка RSA на Android – iPhone

Я пытаюсь реализовать систему, в которой A генерирует пару ключей RSA и отправляет открытый ключ B. B затем генерирует ключ AES и шифрует его с помощью открытого ключа, отправляет результат обратно A. Затем расшифровывает ключ AES Используя свой закрытый ключ RSA, шифрует данные с помощью ключа AES и отправляет их в B, который затем может […]

Невозможно расшифровать зашифрованный файл в android lollipop

У меня есть механизм шифрования / дешифрования для загруженных файлов в моем приложении. Этот механизм работает во всех устройствах и версиях Android до версии 5.0-lollipop. Вот процесс дешифрования: cipher.init(Cipher.DECRYPT_MODE, key); fileInputStream = new FileInputStream(file); cipherInputStream = new CipherInputStream(fileInputStream, cipher); byte[] fileByte = new byte[(int) file.length()]; int j = cipherInputStream.read(fileByte); return fileByte; Шифр и ключ были […]

Данные не соответствуют размеру блока в кодовом имени BouncyCastle (без прокладки)

Я пытаюсь зашифровать pinbock ISO-0 с помощью codenameone BouncyCastle lib. Для этого я использую следующие методы: private static byte[] performEncrypt(byte[] key, String plainText, boolean padding) { byte[] ptBytes = plainText.getBytes(); BufferedBlockCipher cipher; if (padding) { cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(new DESedeEngine())); } else { cipher = new BufferedBlockCipher(new CBCBlockCipher(new DESedeEngine())); } cipher.init(true, new KeyParameter(key)); byte[] […]

Как создать ключевую пару ECDSA (256 бит) для кривой биткойнов (secp256k1) с использованием губчатого замка?

В настоящее время, когда я создаю ключ, используя следующий метод private KeyPair getKeyPair() throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException { KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ECDsA", "SC"); ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256k1"); keyGen.initialize(ecSpec, new SecureRandom()); return keyGen.generateKeyPair(); } KeyPairGenerator имеет другой метод, в котором я могу указать keySize, но я не уверен, как я буду передавать ecSpec. public void […]