Ruby on rails Rails反斜杠unescape post参数
我有一个API端点,需要通过POST请求接收一些数据。这些数据是经过签名的,因此签名实际上是随数据一起发送的 签名使用RSA私钥进行加密,如下所示:Ruby on rails Rails反斜杠unescape post参数,ruby-on-rails,post,params,Ruby On Rails,Post,Params,我有一个API端点,需要通过POST请求接收一些数据。这些数据是经过签名的,因此签名实际上是随数据一起发送的 签名使用RSA私钥进行加密,如下所示: viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2... 过帐表单时,此签名将通过双反斜杠(\\n)转义所有反斜杠符号(\n)来更改: 这实际上使验证签名的过程出错。为了摆脱if,我尝试使用了JSON.parse,它实际
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
过帐表单时,此签名将通过双反斜杠(\\n
)转义所有反斜杠符号(\n
)来更改:
这实际上使验证签名的过程出错。为了摆脱if,我尝试使用了JSON.parse
,它实际上输出了正确的签名,但也引发了一个意外的标记
错误
我还尝试使用了不起作用的CGI::unescape
。从那以后,我一直在想如何让这一切顺利进行
想法?如果正是这个特殊的角色给你带来了问题,你可以简单地
gsub
it:
signature = params[:signature].gsub("\\n", "\n")
... 在这里发布您的实际RSA私钥可能不是一个好主意。。。这种做法违背了私钥的用途谢谢你的回答。签名不是私钥。它是用私钥和密码加密的…好东西。只是检查一下。以前人们在这里贴过类似的东西……哈哈哈,谢谢你的检查,是不是就是这个特殊的角色给你带来了问题?您可以简单地在签名上调用
gsub(“\\n”,“\n”)
?
signature = params[:signature].gsub("\\n", "\n")