token 授权过程的优化

有两端( C / S ),一端是用户应用(C),获取授权码(以下简称 token);另一端是授权中心(S),给用户应用发送 token。用的是 RSA 算法,目的是不让 token 在传输过程中泄露

一开始的做法是:
1、S 端生成 private key 和 public key,然后将 public key 传输给 C 端
2、S 端向 C 端发送用 private key 加密后的 token
3、C 端用 public key 解密拿到 token
这样做的问题是,public key 在传输过程中可能会被截获(其实一般用来解密的或许应该叫 private key,只不过 RSA 的两个 key 是对称的,都可以用来加密和解密。所以我觉得用于传输的应该叫 public key)

改进后的做法:
1、C 端生成 private key 1 和 public key 1;S 端生成 private key 2 和 public key 2
2、S 端将 public key 2 传输到 C 端
3、C 端用 public key 2 加密自己生成的 public key 1,并传输到 S 端
4、S 端用 private key 2 解密,得到 C 端传输过来的 public key 1
5、S 端用 C 端传输过来的 public key 1 加密 token,发送到 C 端
6、C 端用自己生成的 private key 1 解密,得到 token

你可能感兴趣的:(token 授权过程的优化)