Пытаюсь написать скрипт для авторизации на сайте steamcommunity.com на php. На самом сайте пароль перед отправкой шифруется публичным ключом. Так вот на php у меня возникла очень странная хренотень, строка шифруется почему-то 1 раз из 10! 9 раз выдаёт false вместо шифра а также 1 warning и 1 notice, а на 10-й раз выдаёт зашифрованную строку, причём судя по всему неверную.
Сообщения при шифровании:
Warning: openssl_public_encrypt(): key parameter is not a valid public key in /Steam/phpseclib/Math/BigInteger.php on line 1703
Notice: Integer too large in /Steam/phpseclib/Crypt/RSA.php on line 2133
На 10-й раз этих сообщений не выдаёт! Выдаёт зашифрованную строку!
Код шифрования:
$rsa = new \Crypt_RSA();
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$public_key = [
"modulus" => new \Math_BigInteger($result->publickey_mod, 16),
"publicExponent" => new \Math_BigInteger($result->publickey_exp, 16),
];
$rsa->loadKey($public_key, CRYPT_RSA_PUBLIC_FORMAT_RAW);
$encrypted_password = base64_encode($rsa->encrypt($pass));
Классы BigInteger и RSA тут:
phpseclib.sourceforge.net
В чём тут проблема?