Я разработал приложение для 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==
Что я могу с этим сделать?изменить метод шифрования?Как я могу быть уверен, что это больше не повторится?