Android / PHP - шифрование и дешифрование - PullRequest
0 голосов
/ 15 марта 2012

Я борюсь с кодом с этой страницы: http://www.androidsnippets.com/encrypt-decrypt-between-android-and-php

Я хочу отправить данные с сервера в приложение Android и наоборот, но их следует отправлять в виде зашифрованной строки. Однако мне удается зашифровать и расшифровать строку в PHP. Но на Android приложение вылетает со следующим сообщением об ошибке при расшифровке: java.lang.Exception: [расшифровать] не удалось разобрать 'как целое число.

Эта ошибка возникает здесь в цикле for:

    public static byte[] hexToBytes(String str) {
        if (str==null) {
                return null;
        } else if (str.length() < 2) {
                return null;
        } else {
                int len = str.length() / 2;
                byte[] buffer = new byte[len];

                for (int i=0; i<len; i++) {
                        buffer[i] = (byte) Integer.parseInt(str.substring(i*2,i*2+2),16);
                }
                System.out.println("Buffer: " + buffer);
                return buffer;
        }
}

Кстати, эта строка должна быть расшифрована: f46d86e65fe31ed46920b20255dd8ea6

1 Ответ

0 голосов
/ 15 марта 2012

Вы говорите о шифровании и дешифровании, но вы показываете код, который просто превращает числовые байты (такие как 0x4F) в строки (такие как "4F") - что может иметь отношение к вашей передаче данных (если вы не можете передать двоичный формат), но совершенно не связаны с шифрованием / дешифрованием.

Поскольку код Android содержит только один анализ целочисленных значений, изучили ли вы вводимые данные? str.substring(i*2,i*2+2), по-видимому, содержит данные, отличные от [0-9A-F], когда возникает исключение. Вам следует начать с изучения полученной строки и сравнения ее с отправленной, чтобы убедиться, что они согласны и содержат только шестнадцатеричные символы.

Edit - передача строки "f46d86e65fe31ed46920b20255dd8ea6" через функцию hexToBytes () работает безупречно. Ваш вклад, вероятно, не то, что вы думаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...