最近做一个项目,就是获取要提交的信息,首先把信息转化为Xml格式,这是原始需要提交的数据,然后经过Base64的编码,URL的编码,最后还要经过私钥加密(加密算法是MD5withRSA)获得的是数字签名的数据,最后把原始数据和签名数据一起通过后台的方式提交给服务器。
疑问:为何要经过私钥加密获得数字签名呢?
数字签名:将报文按照双方约定的HASH算法计算得到一个固定位数的报文摘要。改动任何一位,用同样的算法计算出来的摘要就不一样。然后将该摘要用发送者的私钥加密,然 后连同原报文一起发送给接收者,这就是数字签名。
接收方接收到数字签名后,用同样的HASH算法对原报文计算出摘要后,然后用发送者的公钥对数字签名进行解密,得到报文摘要进行比较。如果相等,则没有被篡改过。
其实上述的私钥解密就是为了安全,看看数据在传输的过程中有没有被篡改。