Ruby on rails Rails反斜杠unescape post参数

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,它实际

我有一个API端点,需要通过POST请求接收一些数据。这些数据是经过签名的,因此签名实际上是随数据一起发送的

签名使用RSA私钥进行加密,如下所示:

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")