实现登录口令密态存储和身份认证

发布时间 2023-05-16 21:20:54作者: 头发换代码

目前共有三种角色:管理员、单位、员工,其信息包括口令均为明文存储,不安全

目前正在尝试用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,还有些细节没处理好,还在修整中