加密的相关基础

一般在用到加密时,有两种情况,一种是可逆的,另一种是不可逆的。

可逆的比如说对cookie进行加密之后,当然还需要对其进行解密,而不可逆的加密类似于一个签名,用于验证这个信息有没有被篡改过。

现在加密方式有两种,一种是对称加密,另一种是非对称加密。对称加密就是双方各有一个key,然后用这个key来进行加密和解密。目前cookie采用了对称加密方式

非对称加密中,常用到RSA加密,这种加密方式有一个公钥和私钥,服务端保留私钥,客户端保留公钥,这个公钥可以被公开,不怕被泄露,服务端只要保管好私钥就可以了。

RSA的流程一般是:客户端将数据用公钥进行加密,传送到服务端。

           服务端接收到加密后的数据,用私钥进行解密。

         服务端处理完数据向客户端返回时,用私钥进行签名。

         客户端收到签名后的数据,用公钥进行验签(签名的参数顺序必须一致)

这些也就是大致上RSA的加密解密,签名验签的逻辑了,公钥是通过私钥生成的,私钥一定要保留好私钥。不要被泄露。

MD5和SHA1加密,这两种加密不可逆的,一般在支付时,双方保留一个key,每次发送请求时,都需要将这个key加入到参数中,然后用md5加密,形成一个新的sign。然后接收方,在用参数和key结合起来的

字符串进行加密,加密后的串和这个sign进行比较,如果不一致则说明参数被篡改过,或者不是其他人伪造的请求。(参数中一般除了这个key还会带一个时间戳)