跳到主要内容

附录 2

签名验证


  • 使用 "SHA256WithRSA" 算法进行签名验证。
  • 合作伙伴应使用 FINEXUS 公钥验证来自 RPG 的消息和签名。
{
"message":{
"sndrRefNo":"FNXS00000001"
"LkUpRef":"20201015FNXSMYNB6100OT01000001",
"DisplNm":"JOHN"
"TxnSts": "ACTC"
"Rsn":""
},
"signature":"Fk4IcxS9OKHFodg/vCsW73FCkzjJIV+a94epMsGnyDyXxPwRiMzqiM+ZYgKGzHJTN2TipTZ2zZp8x+9H
r04qPN8GeFvzgTMO1x3kasvhoocUanNW3GZt5KA61VNIa+OAKKONHzZTckwmRFP87+q99MwvTbQ2nJ3SL5ctXYfSDri8P
aQCiy7cVTjjObiAeTNVC48oLZbcU15JfTz9TyOAGYsMOGvqR+OWkJq3M0sIjwC4s/SVlzV2lG5bRXUfX3Zu///2MAWzLB
UCfwHSZMPKcQ6zCnXw8MMjQZoLXgpFW/lEDx7HqBYhTY6!rGPBu6iH0SssUj4stfRUcuMhldAuHw=="
}
  • Java中的示例代码:
String msg = <retrieve the “message” value from the JSON data>
String signature = <retrieve the “signature” value from the JSON data>

// Decode signature from Base64 format
byte[] sign = Base64.getDecoder.decode(signature);

Signature signature = Signature.getInstance(SHA256WithRSA);
signature.initVerify(publicKey);
signature.update(msg);

boolean verifyInfo = signature.verify(sign);
  • 如果 verifyInfo 的结果为真,则验证成功。否则应将此情况报告给 FINEXUS 支持团队。