我有一个API端点需要通过POST请求接收一些数据。这些数据已签名,因此签名实际上随之发送。
签名使用RSA私钥加密,如下所示:
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
发布表单时,通过双反斜杠(\n
)转义所有反斜杠符号(\\n
)来更改此签名:
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
实际上使验证签名错误的过程。为了摆脱if,我尝试使用实际输出正确签名的JSON.parse
,但也引发Unexpected token
错误。
我也尝试使用CGI::unescape
无效。从那里开始,我很难理解如何使这项工作。
想法?
答案 0 :(得分:0)
如果只是这个特殊角色给你带来问题,你可以简单地gsub
:
signature = params[:signature].gsub("\\n", "\n")