Openssl_encrypt делает текст не подходящим для отправки через GET в URL к php - PullRequest
0 голосов
/ 20 декабря 2018

Я разработал приложение для Android, используя логин / пароль активного каталога моей компании для входа в систему.Когда пользователь вводит свои учетные данные, пароль шифруется, и я отправляю информацию в php-файл, используя метод GET.Недавно пользователь не смог войти в систему, и я думаю, что это произошло из-за символа «+» на зашифрованном пароле.

Я попытался отключить шифрование, и он мог войти в систему. Так что проблема точно.

Это код, который я использую для шифрования данных:

function encrypt_new($data) {
    $OPENSSL_CIPHER_NAME = "aes-128-cbc"; //Name of OpenSSL Cipher 
    $CIPHER_KEY_LEN = 16;
    $iv = 'fedcba9876543210';
    $key = '0123456789abcdef';

    if (strlen($key) < $CIPHER_KEY_LEN) {
        $key = str_pad("$key", $CIPHER_KEY_LEN, "0"); //0 pad to len 16
    }

    $encryptedData = base64_encode(openssl_encrypt($data, $OPENSSL_CIPHER_NAME, $key, OPENSSL_RAW_DATA, $iv));

    return $encryptedData;
}

Полученный URL с этим конкретным пользователем:

login.php?user=someuser&pwd=r+FjjfugRQXlcURU8eMOCQ==

Что я могу с этим сделать?изменить метод шифрования?Как я могу быть уверен, что это больше не повторится?

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