场景:当未启用HTTPS时,用户的登录密码,以及当用户修改密码时,密码在网络中需要加密传输。
一、交互逻辑
上图中,前端部分运行在浏览器上,所以需要用JavaScript来加密需要传输的密码,后端部分使用Java来实现。
二、前端部分
前端部分的加密,选择jsencrypt来实现,代码如下:
1 | //用户修改密码样例 |
三、后端部分
后端部分使用Java来实现
工具类
1 | package com.share.util; |
生成公钥/私钥
在第一次请求时生成公钥与私钥,并放到当前线程上。返回公钥给客户端。
1 | HashMap<String, String> map = RSATools.getKeys(); |
私钥解密
1 | //从session上拿到上次生成的密钥 |
四、可运行的样例
后续提供github地址