解决密码安全问题,通常是需要一套解决方案的。而不是某几个加密方法。
1、采用HTTPS加持
2、后端不需要解密前端传过来的密码,这种情况下用md5加密
1、采用HTTPS加持
2、后端不需要解密前端传过来的密码,这种情况下用md5加密
3、后端需要解密前端传过来的密码,可以用AES(令牌+密码)。
前端登录流程:①、调用接口获取令牌,令牌放入redis(前缀+sessionId作为缓存key),有效时间2分钟 ②、客户端“用户名=用户名&AES(令牌+密码)”登录 ③、调用一次登录接口令牌失效
服务端:AES解密,去掉令牌,拿到原始密码
同时:前后端使用token作为密钥。
后端代码:
// token作为密钥,AES密码解密
AESUtil aesUtil = new AESUtil(token);
String password = aesUtil.decryptData(password);
// 去掉token拿到原始密码
String passwordOriginal = password.replaceFirst(token, "");
要求不是特别高的,基本上就可以了