以下任务是否有较简单的解决方案?
要使用API,我需要使用以下公式计算签名。问题来自请求正文中的双引号,它们存储为\"
而不是"
。
下面的代码生成文本1570702210SoMeF@ke123456[{ "id": "123", "title": "foo", "version": "2019-10-10 10:10:10 } ]}SoMeF@ke123456
,正确的哈希为"b6e783309e9d6f8ee47647373a9f6086020b3af8"
乘http://www.sha1-online.com/
签名公式:十六进制(sha1({GMT_UNIXTIME} + {API_SECRET} + {CONTENT} + {API_SECRET}),其中
以下代码给出了错误的签名“ c7a7ecbb0fd2d6eebfb378bdd061ea88d9fb2f69”。
library(stringr) library(lubridate) library(digest) API_SECRET <- 'SoMeF@ke123456' mstime <- ymd_hms('2019-10-10 10:10:10') my_id <- 123 title1 <- 'foo' request_body_json <- paste0('[{ "id": "', my_id,'", "title": "', title1, '", "version": "', mstime, ' } ]}') rbj1 <- paste0(round(as.numeric(mstime)), API_SECRET, request_body_json, API_SECRET) signature <- digest(rbj1, algo = "sha1")
[我看到一种使用
cat()
函数将字符串保存到文件并从文件计算签名的解决方法,该签名提供了正确的签名“ b6e783309e9d6f8ee47647373a9f6086020b3af8”
cat(paste0(round(as.numeric(mstime)), API_SECRET, request_body_json, API_SECRET), file = 'rbj.txt')
signature <- digest('rbj.txt', algo = "sha1", file = TRUE)
以下任务是否有较简单的解决方案?为了使用API,我需要使用以下公式计算签名。问题来自请求正文中的双引号,它们...
防止输入被序列化: