Получить единственную строку юникода из digest::hmac

Как я могу получить одну строку Unicode в качестве подписи ниже (вместо символьного вектора (который, кажется, содержит кусочки строк Unicode)?

Например

  library(digest)

  raw_key = 'QQrawkeyrawkeyrawkeyrawkey4='
  key = RCurl::base64Decode(raw_key)
  url_test = 'example_url'
  signature <- digest::hmac(key, url_test, algo = "sha1", raw = T)

Возвращает символьный вектор

64 d9 cb 13 d3 f9 5c 0a 4c 1d 47 d2 d5 9d ab 24 25 3f f3 20

Но я хочу, чтобы он возвращал единственную строку 'd\xd9\xcb\x13\xd3\xf9\\nL\x1dG\xd2\xd5\x9d\xab$%?\ Xf3 '

Фон:

Я пытаюсь сделать так, чтобы код R работал так же, как код Python ниже (я не очень разбираюсь в Python).

     raw_key = 'QQrawkeyrawkeyrawkeyrawkey4='
     key = base64.urlsafe_b64decode(raw_key)
     url_test = 'example_url'
     hmac.new(key, url_test.encode(), hashlib.sha1).digest()

Дополнительный контекст заключается в том, что мне нужно создать строку, чтобы создать подпись для вызова API матрицы расстояний Google с использованием премиум-аккаунта.

1 ответ

Решение

digest::hmac(.., raw=TRUE) фактически не возвращает символьный вектор, он возвращает "сырой" вектор в R. Чтобы преобразовать это в строку, используйте

rawToChar(signature)
Другие вопросы по тегам