From 1cfc1b5ef0116d952170a463bb26d2c1da4af9ba Mon Sep 17 00:00:00 2001 From: you <284908631@qq.com> Date: Mon, 8 Jun 2020 23:56:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=B3=BB=E7=BB=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E5=AF=86=E7=A0=81=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0md5=E5=AF=86=E7=A0=81=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/admin/cardedit.jsp | 2 +- WebContent/admin/index.jsp | 28 ++++++-- WebContent/admin/managerlist.jsp | 2 +- WebContent/admin/updatePassword.jsp | 89 +++++++++++++++++++++++ build/classes/javabean/Admin.class | Bin 6103 -> 6147 bytes src/javabean/Admin.java | 2 +- src/javabean/Util.java | 37 ++++++++-- src/servlet/admin/UpdatePassword.java | 98 ++++++++++++++++++++++++++ 8 files changed, 244 insertions(+), 14 deletions(-) create mode 100644 WebContent/admin/updatePassword.jsp create mode 100644 src/servlet/admin/UpdatePassword.java diff --git a/WebContent/admin/cardedit.jsp b/WebContent/admin/cardedit.jsp index 57c9e5c..0998127 100644 --- a/WebContent/admin/cardedit.jsp +++ b/WebContent/admin/cardedit.jsp @@ -66,7 +66,7 @@
- placeholder="请输入密码" autocomplete="off" class="layui-input" lay-verify="required"> + placeholder="请输入密码" autocomplete="off" class="layui-input" lay-verify="required">
diff --git a/WebContent/admin/index.jsp b/WebContent/admin/index.jsp index 90d4c88..cb847ef 100644 --- a/WebContent/admin/index.jsp +++ b/WebContent/admin/index.jsp @@ -28,11 +28,10 @@
  • - 贤心 + 系统管理员
    -
    基本资料
    -
    安全设置
    +
    修改密码
  • 注销
  • @@ -64,14 +63,29 @@ + diff --git a/WebContent/admin/managerlist.jsp b/WebContent/admin/managerlist.jsp index 25093b0..154974f 100644 --- a/WebContent/admin/managerlist.jsp +++ b/WebContent/admin/managerlist.jsp @@ -39,8 +39,8 @@ ,height: 600 ,cols: [[ {field:'id', width:80, title: 'ID', sort: true} - ,{field:'name', width:80, title: '用户名'} ,{field:'account', width:80, title: '账号', sort: true} + ,{field:'name', width:80, title: '姓名'} ,{field:'email', title: '邮箱', minWidth: 150} ,{fixed: 'right', title:'操作', toolbar: '#operateBar', align: 'center', width:150} ]] diff --git a/WebContent/admin/updatePassword.jsp b/WebContent/admin/updatePassword.jsp new file mode 100644 index 0000000..6cab7d5 --- /dev/null +++ b/WebContent/admin/updatePassword.jsp @@ -0,0 +1,89 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +修改密码 + + + + + + + +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    + + + \ No newline at end of file diff --git a/build/classes/javabean/Admin.class b/build/classes/javabean/Admin.class index a9093d72dd83b06d28ad7560cad47ad58f2887f4..f4037de7edd2209733cff33a9e346f98f6d145fd 100644 GIT binary patch delta 2899 zcmaJ@4R}-K6@I_uCimvvo2I=@+UJ5`L8Xv3R{pw&Fmx#XfNe#f@;79Ggf`GNU6S%M zm0(5JiOTeY0u==ZwVSTCRaP1pD9VsA-H+Q~b93sj{LHzz|1ps6+^+#T#`ZjEbG~!G z^L_7m&wI|zv66>wP>-D7vmZby^L43bZGII&d|t*x2KUm?^3bA4sIH_k8LiPV2{$sx z^`S(fJUpIZ1bZ(d+u1X{$wL0#`4F0jbVC*agz4zf)PH$@O z-Pv_&SF4J9Fh|C0hFlR8jg?G~N9&R^lkrH1;^tx=zfrn&;ujg%Xa)B&7`^MCJh@@p ziLEc3+}3(}!cY`vG*+i!EjH`ef)@UOJX&kQR%_!k3<17|dHLJ& z;K|zvWkF4JS)`!wIt9-$WL=CF$QA4$@YfZJds=lok3kfXj1jTXx+(?Vfx^`gOzsd(Xkib z<;Rs zNih+ri7ZYQ_zRZAW3>hGhMGu1#=l5oyi@Z{S8>K7=rhVGKA;DUC5I81v{jX^|&|;#CR4 zGM^uiy!;)#(RCZ_a8YX?=Uwm!^) zEQ86&6QAp4jFT~iY~W@Yp>y!k|313sf9#^j`aXE!`maL*;uLxe{GWIjluaB7{;X%H zBRO|Bmh%Ii{M3qWJW%Q??tw5=NHf71@lEOZ< zI*o6U%4CO6%~<_`Gb;I<9Hd-T+SY}+8w6i(#Y@g@+`f&f^JH3@Pb z9)&)jAJ)pC4>ee(yO`B(z@U@F3pPiY=lA8mIK zZ3E{MUHLcsoleT8^PKdZgItnyhV^g>Tc#<^nS+`#quV&nXPbuL3O{ax}nOsSjMX44CXgwJTQR8sC#kCwhx ze-TZwsr>Q0^3)2vK|iSuk~;R&@IORz>`gJ`?;x}`JT3SDVecQ~^s>h$!H119-5~g| zQ}Na@C#h4yU^FtBDO8@T>9t}N$|(vp3{2fVk)oBAD*R^ j5$If|_pmHN%{S+dFtb?>k*C1T43a**idn8zFy{R?6Lqu; delta 2915 zcmZ`*3wRXO75?w+?9S}$Y!W9g1_T2N3CXT&45lALK{397Jb1~=+PGvFSWI@~?goe` zixDl_YJ|%}qHUmxu~17;nq&oo6a;Fut+dsa*1j}6YOUJRS{fvtnQSmc{J#Bm&pr2^ zd;jy_^Pjs9Uh|GmdHwv$-2h5i#%`roP+S-XL&XGqomblm9g}c_gzI^;EqCZ-+{hq? zgDc_;wt}$>6cpel6*uD+{;KWH5w~HggeeReOa06IzFL2Hv2RvmEFP>=F%9K>f|yrQ z$)NT;^wR0gFZ4XS`_!K83Z`SGgc%H(R!}J7n;s2?J&OxP%z@J92CdSjO*llwKai3KfmGmq8{3bNsapK`YHEGVbGV zIP`*5SS=yJ;I^PP#6z{d3V*$d2TWR|Q0(Tq`go&+2f14s;dn?z10LqZQqdJnSgXR0 z*)krbb$QE|1f#(`1x@&lipTIcUnxz|_u^0T(9W z1r49b4GI05 zD(_<2CP$k>%ClhB_Jlqnk>NQ%TA=N5@8%1*7p$U9fslFldIJ zSJ8(&x-V2)e)J?esVnbNsd0b`1azhWOhu5NRd!3HPE_W)nxu1F+NVuLOwF`mJ& z>-HojGHk&VuP*BLE|j&v^&)Q7DmqZ5-QI3Um-5eTH{?tBb$S0KyxRPB0&oX{SV`Y* z)8K?=CGH33cco2C%tSs-j3vJh^|%HrP)M^Ln)hKXjh}#*BCf_p8gHfX^SBl}$?hP# zn_7{JcAE*=%n&Nv^lMso;+tTWRZW&ajc5z*f}fxiVG|aj1|sdr5lGO%cG|KTi)f*P zj?KYhEP;d&g|CGxLr53;FaweVCLzcATrFXogh^xrH%hqU9J1)UkIwmuRTR0j4_R=2 zX%nxt3r&MA^ef|`Q8u-x<44m+B*ODMQE!OaFvHFa2QwsQ$X&=c97SEYrvuANot~7T zXe$ku_b}#plenLu1yy^|G~c}FHJ$jD_DBc5?bVu-SSJvj8?`5`am$7A(=_hD_YAug zaRd~FWM-Z9~dfS z;}%QP+Hh1?wH>;w?MUK>0=m%NftTizuakV8NhE~?VYNK3kmnWCGvL@yj{O&f9U$L< zi+l&kcW`jvYvg$CqD4o@cjUsN>@;yJ+`8IFt#ue?o#IO2=AQa-)mJmSJZ}7I+6oip@hb$3pVK{zEvvy<%LoJy& zkSXL^GNBq5vJfDZ$hb;y;CDDq?ZnGI!|%ybP|VI+%5mXsHXDDyyClNnY&!l(`?>LM zf>q#8v@nfzQ~e$zD;<9(VX0Kl{Q&+#08FV(gw%&ep$<~WDhc!<$))thOaTJtal3>z zGFdO487`c|^{jv}QNtqvWzbd*`n?R9q+#$6GKW;Y*UrjW1*>F+$P6m}{Bo_w5R1$< zNM%~#5eu!h=&@L?qwnTef5B`D9Yr2vSyE(O4Wk`w@i+N9al`U%bf>!am%B5`p4A_O1flP@#J z;uJ>=(w~QECVkpJD+k0X?nUAZ$@V{non-4E)YA$H7;#xnDCuRXXu}+;${ik4#RK{j zwNE|Tr-R35J=)p9<6e)}`^DII46B*I zY$Sy%aG!N&4y!sxf*yhE%=Z2TcUBRmpRq2om);;J6PcZF$Q_mDC@0jJOzL7zg3S-* Yj?rCAB`#&SnVWP$?=(v@?~kQ_4o2s=VE_OC diff --git a/src/javabean/Admin.java b/src/javabean/Admin.java index d8a703e..a3f4ee8 100644 --- a/src/javabean/Admin.java +++ b/src/javabean/Admin.java @@ -35,7 +35,7 @@ public class Admin { connection = Base.getConnection(); pstmt = (PreparedStatement) connection.prepareStatement(sql); pstmt.setString(1, username); - pstmt.setString(2, password); + pstmt.setString(2, Util.passMd5(password)); resultSet = pstmt.executeQuery(); try{ if (resultSet.next()) { diff --git a/src/javabean/Util.java b/src/javabean/Util.java index 1c1a7cd..506256a 100644 --- a/src/javabean/Util.java +++ b/src/javabean/Util.java @@ -1,5 +1,8 @@ package javabean; +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import net.sf.json.JSONObject; @@ -40,6 +43,9 @@ public class Util { return dateFormat.format(date); } + /* + * 返回json数据 + */ public static String jsonResponse(int code, String msg, String data) { JSONObject jsonObject = new JSONObject(); jsonObject.put("code", code); @@ -47,13 +53,36 @@ public class Util { if( data!=null ) { jsonObject.put("data", data); } - return jsonObject.toString(); } + /* + * md5加密 + */ + public static String stringToMD5(String plainText) { + byte[] secretBytes = null; + try { + secretBytes = MessageDigest.getInstance("md5").digest( + plainText.getBytes()); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("没有这个md5算法!"); + } + String md5code = new BigInteger(1, secretBytes).toString(16); + for (int i = 0; i < 32 - md5code.length(); i++) { + md5code = "0" + md5code; + } + return md5code; + } + + public static String passMd5(String password) { + String salt = "ew!.E"; + return Util.stringToMD5(password +salt); + } + public static void main(String[] args) { - java.util.Date date = new java.util.Date(); - SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - System.out.println(dateFormat.format(date)); + System.out.println(Util.passMd5("admin")); + //java.util.Date date = new java.util.Date(); + //SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + //System.out.println(dateFormat.format(date)); } } diff --git a/src/servlet/admin/UpdatePassword.java b/src/servlet/admin/UpdatePassword.java new file mode 100644 index 0000000..ebd205c --- /dev/null +++ b/src/servlet/admin/UpdatePassword.java @@ -0,0 +1,98 @@ +package servlet.admin; + +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import javabean.Base; +import javabean.Util; +import net.sf.json.JSONObject; + + +@WebServlet("/admin/updatePassword") +public class UpdatePassword extends HttpServlet { + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("application/json; charset=utf8"); + // 接受数据 + String oldPassword = req.getParameter("oldPassword"); + String newPassword = req.getParameter("newPassword"); + String conPassword = req.getParameter("conPassword"); + HttpSession session = req.getSession(); + String username = (String) session.getAttribute("admin"); + + + // 准备资源 + Connection connection = null; + PreparedStatement pstmt = null; + ResultSet resultSet = null; + int result = 0; + String sql = null; + int count = 0; + // 返回数据 + int code = 1; + String msg = "error"; + JSONObject json = new JSONObject(); + PrintWriter out = resp.getWriter(); + + // 可靠性 + if(conPassword.equals(newPassword)) { + // 查询 + try { + connection = Base.getConnection(); + // 验证账号密码 + sql = "select count(*) as count from admin where username=? and password=?"; + pstmt = connection.prepareStatement(sql); + pstmt.setString(1, username); + pstmt.setString(2, Util.passMd5(oldPassword)); + resultSet = pstmt.executeQuery(); + while(resultSet.next()) { + count = resultSet.getInt("count"); + } + // 修改密码 + // 密码正确 + if(count >= 1) { + sql = "update admin set password=? where username=?"; + pstmt = connection.prepareStatement(sql); + pstmt.setString(1, Util.passMd5(newPassword)); + pstmt.setString(2, username); + result = pstmt.executeUpdate(); + if(result == 1) { + code = 0; + msg = "修改成功"; + }else { + msg = "修改失败"; + } + + }else { + msg = "密码错误"; + } + } catch (ClassNotFoundException e) { + msg = "class notfound"; + } catch (SQLException e) { + msg = "sql错误"; + } finally { + try { + Base.closeResource(connection, pstmt, resultSet); + } catch (SQLException e) { + msg = "关闭失败"; + } + } + + }else { + msg = "两次密码不一致"; + } + out.print(Util.jsonResponse(code, msg, null)); + } + +}