实现登录口令密态存储和身份认证
目前共有三种角色:管理员、单位、员工,其信息包括口令均为明文存储,不安全
目前正在尝试用SHA-256算法加密password后再存储进数据库,思路如代码所示
<%@ page import="java.security.MessageDigest" %>
<%@ page import="java.math.BigInteger" %>
<%
String password = request.getParameter("password");
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(password.getBytes());
String encryptedPassword = new BigInteger(1, md.digest()).toString(16);
// 将加密后的密码存储在数据库中
%>
上述代码能将password转为密文
尝试了一下自己写的报错比较多,最后调用DigestUtil.sha256Hex去实现了
String password=DigestUtil.sha256Hex(request.getParameter("password")!=null?request.getParameter("password"):"");
现在已经能实现password在数据库中密文存储,用户持明文口令登录功能了
新添加的用户在数据库中也是密文存储口令
且管理员并不能直接得知用户的明文口令,如果用户忘记口令,则需要重置
目前问题:
- 对于上一级管理员如何管理下一级用户的password,还有些细节没处理好,还在修整中