Я получаю данные с сервера, используя этот API. Чтобы получить authToken, мне нужно передать свое имя пользователя и пароль. В описании ввода пароля указано «Хешированный пароль. Может быть передано в виде обычного текста или в виде хэша, зашифрованного RSA
(см. выше открытый ключ RSA). "
Для шифрования пароля я использую приведенный ниже код.
library(openssl)
aqKey <- read_pubkey("public_key.pem")
user_name <- "UserName"
password <- rsa_encrypt(charToRaw(askpass()), aqKey)
pw <- rawToChar(password)
Это дает мне строку с кучей неиспользуемых символов, которые выдают ошибку 400 при использовании в URL.
/GetAuthToken?user=USERNAME&encPwd=ˆ Ù\026Õ©1tÐÆ®IßÊ/ÛÅÆwéÙeµèB¾kz–V\t–ü˜ÞO«~=ñcѪÿC'p‰-zòjEü,\r¯eÑ}d‹ã\fÀ\030DR·W\026Â\022‰Å:™¶í©«cózÆlE\032Ï4$é¹Þ,ù«…s\021…–ì\026}h¯~?\nC\021ôj-†\032K}ò\026
Если я использую base64_encode()
или URLencode()
на password
или pw
, я получаю статус 200, но не получаю токен. Это эквивалентно неверному паролю. Когда я передаю пароль как открытый текст, я получаю токен.
У меня вопрос: как мне отформатировать пароль после его шифрования, чтобы сервер распознал его как зашифрованный пароль?