数字签名

以连连支付为例,解释一下第三方支付的安全签名机制。

1.RSA安全签名机制

商户通过OPENSSL工具生成一对密钥,把公钥交给连连。连连一方也会生成一对密钥,把公钥给商户。

商户发送请求时,先把要需要签名的参数按照字母顺序排好,以&连接,为空的参数不参与签名。然后把待签名串和公钥放入签名函数,就会得到签名串。

签名函数中最常见的签名算法就是MD5withRSA,SHA1withRSA。以前者为例,先把待签名串S1做MD5加密得到M1,然后用RSA和私钥加密,得到R1,发送给连连。

连连收到R1后,对其公钥解密,得到M2,对请求参数做MD5加密得到M1,如果M1和M2相同(通常转化为Base64字符串后比较),则验签通过,否则失败。

2.MD5安全签名机制

连连和商户约定好一个签名Key,每次签名时把key=value放在待签名串的尾部,然后使用MD5加密后得到签名串M1,发送给连连。

连连收到M1后,以同样的方式把key=value放到内容待签名串尾部,MD5后得到M2,如果M1和M2相同,则验签通过。

你可能感兴趣的:(数字签名)