从digest :: hmac获取单个unicode字符串

时间:2017-10-10 20:07:14

标签: python r hmac digest

如何将单个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()

附加上下文是我需要使用高级帐户来串口创建用于调用google distance matrix API的签名。

1 个答案:

答案 0 :(得分:1)

digest::hmac(.., raw=TRUE)实际上并没有返回一个字符向量,而是在R中返回一个“原始”向量。要将其转换为字符串,请使用

rawToChar(signature)