精华内容
参与话题
问答
  • 修改密码功能的实现

    万次阅读 2019-03-29 15:30:03
    1.在当前页面添加"修改密码"按钮。 2.点击"修改密码"按钮出现弹框。需要准备弹框和弹窗的内容,和如何让弹窗显示, 还有弹窗右上角的x按钮的关闭事件、弹窗右下角的"关闭"按钮的关闭事件、以及获取...

    需求:当点击"修改密码"按钮时,出现弹窗,用户在弹窗上可以进行更改密码的操作。

    所用技术: BootStrap + JavaScript + JQuery + Ajax + Hibernate。

    在这里插入图片描述

    在这里插入图片描述
    具体实现过程:

    1.在当前页面添加"修改密码"按钮。
    在这里插入图片描述
    2.关于前台的一些操作。
    点击"修改密码"按钮出现弹框。需要准备弹框和弹窗的内容即新密码和确认密码,和如何让弹窗显示,
    还有弹窗右上角的x按钮的关闭事件、弹窗右下角的"关闭"按钮的关闭事件、以及获取用户的id值。
    对用户输入密码的位数进行判断、两次密码的输入内容是否一致进行比较、
    用户点击完"确定"按钮后,进行提示密码修改成功和隐藏弹框。
    使用ajax将前台的数据参数传到后台Controller的指定方法中。

    <div class="modal changepassesModal" id="tanchukuang">
    	<div class="modal-dialog">
    		<div class="modal-content">
    			<div class="modal-header">
    				<!-- 创建隐藏域,得到uid用户的id(js中无法使用el),因为修改当前用户的密码,首先要知道获取当前用户所在数据表中的id-->
    				<input name="uiid" type="hidden"/>
    				<button type="button" class="close" data-dismiss="modal"
    						aria-hidden="true" id="gb">&times;</button>
    				<h4 class="modal-title" id="myModalLabel">
    					<i class="icon-info"></i><span style="margin-left: .5em;">修改密码</span>
    				</h4>
    			</div>
    
    			<!-- BEGIN FORM 修改密码的第一要素:输入新密码-->
    			<form class="form-horizontal" method="post" name="passForm"
    				  novalidate>
    				<div class="modal-body">
    					<div class="form-body">
    						<div class="form-group">
    							<label class="control-label col-md-3">新密码</label>
    							<div class="input-icon col-md-7">
    								<i class="fa fa-lock" style="margin-left: 1.5em;"></i> <input
    									class="form-control placeholder-no-fix" type="password"
    									placeholder="新密码" name="StorePassword" id="StorePassword" required /><span
    									class="help-block" hidden   minlength="6" maxlength="6"
    							></span>
    							</div>
    						</div>
    						<!-- 修改密码的第二要素:确定新密码-->
    						<div class="form-group">
    							<label class="control-label col-md-3">确认密码</label>
    							<div class="controls">
    								<div class="input-icon col-md-7">
    									<i class="fa fa-check" style="margin-left: 1.5em;"></i>
    									<input class="form-control placeholder-no-fix" type="password"
    										   placeholder="确认密码" name="newStorePassword" id="newStorePassword" required/><span
    										class="help-block" hidden  minlength="6" maxlength="6"
    								></span>
    								</div>
    							</div>
    						</div>
    					</div>
    				</div>
    				<!-- 关闭和确定修改-->
    				<div class="modal-footer">
    					<button type="button" id="close" class="btn btn-default" data-dismiss="modal">关闭</button>
    					<button type="button" class="btn blue queding">确定</button>
    				</div>
    			</form>
    
    			<!-- END FORM-->
    		</div>
    	</div>
    </div>
    

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述
    3.后台Controller方法接收参数uid(用户的id)和password(用户所修改的新密码)进行处理:
    //@RequestMapping()注解代表的是给当前方法起一个外资源进行访问的名称,value为名称,method为请求方式。
    @RequestMapping(value = “updatePassword”,method = RequestMethod.POST)
    @ResponseBody //使用@ResponseBody接收前台ajax传来的json类型的数据参数
    /**
    * 接收前台传来的uid和password,使用@RequestParam来进行接收
    /
    public Map<String, String> updatePassword(@RequestParam(defaultValue = “0”) String uid, @RequestParam(defaultValue = “0”) String password){
    Map<String,String> map = new HashMap<String,String>();
    /
    *
    * 随机生成6位字符,调用已封装好类BaseUtils和它的静态方法getCharAndNumr(int count);
    * 返回值为String类型。
    /
    String random = BaseUtils.getCharAndNumr(6);
    /
    *
    * MD5加密:由于需要对接收到前台用户输入的密码进行加密,
    * 先调用已经封装好的BaseUtils类和它的静态方法getMD5(String str)进行加密。
    /
    String newPassword = BaseUtils.getMD5(password); //password为前台ajax传来的用户输入的密码
    /
    *
    *由于MD5加密后的密码还不够安全,所以需要加盐值,也就是上面所随机生成的6位字符。
    *MD5加密+盐值
    */
    String lastPassWord = BaseUtils.getMD5(newPassword+random);
    //将最终加密后的用户密码加入map中
    map.put(“password”,lastPassWord);
    //调用Service业务层的更新数据库操作的方法,在调用之前,需要将UserService接口进行使用注解
    //@Autowired
    //private UserService userService; 进行配入当前Controller中
    userService.updateNewByCondition(map,uid);
    return map;
    }

    4.在相应的Dao数据层接口中创建实现更改数据库用户密码操作的方法:
    该方法里有两个参数,分别是Map类型的map和String类型的uid,
    map里有前台传来的用户密码,uid是当前用户在数据库中的唯一id值。
    在这里插入图片描述
    在Dao数据层接口中的实现类中实现Dao数据层接口中的更改数据库操作的方法,
    里面的内容是对数据库进行更改密码的具体代码实现:
    @Override
    public void updateNewByCondition(Map<String, String> map, String uid) {

    String sql = “update smk_user set “; //具体的sql语句,更新表
    String hql = “”;
    //遍历map中对象的key和value。
    for (Map.Entry<String, String> entry : map.entrySet()) {
    hql += " u_” + entry.getKey() + " = '” + entry.getValue() + “’,”;
    }
    //不为空判断,截取","
    if (StringUtils.isNotBlank(hql)) {
    hql = hql.substring(0, hql.length() - 1);
    }
    //sql语句的拼接,给uid加上’’
    sql = sql + hql +" where id =’"+uid+"’";
    //查看控制台输出的sql语句正确与否
    System.out.println("sql = "+sql);
    //执行sql语句更新操作
    Query query = getSessions().createSQLQuery(sql);
    query.executeUpdate();
    }

    在Service业务层接口中创建与Dao数据层接口一样的方法:

    然后在Service业务层接口的实现类ServiceImpl中实现Service业务层接口中的方法:
    在这里插入图片描述
    里面调用的是Dao数据层接口中的方法,所以,需要把具体的sql写在Dao数据层接口的实现类DaoImpl中,
    在Controller中直接调用在这里插入图片描述

    但是现在有一个问题,数据库里虽然保存了用户所新修改的密码md5密文,
    当用户去使用这个新密码去登录时,还是会登录不上。
    因为数据库中没有去保存用户所新修改的密码明文,保存的仍然是用户之前的旧密码的明文,
    也没有保存随机生成的6位盐值,用户登录使用账号和新密码去登录时,
    需要去与数据库中的当前用户所对应的md5密文进行比对,所以,需要去保存这两个值。
    在这里插入图片描述

    总结:

    一、前台需要做的:
    1.创建"修改密码"按钮。
    2.创建弹窗,添加弹窗内容,点击"修改密码"按钮弹窗出现。
    3.给弹窗添加关闭事件。
    4.判断两次密码输入内容是否一致,并提示用户:“密码输入不一致”。
    5.判断密码输入内容不能为空,并提示用户:“密码不得为空”。
    6.判断密码输入位数进行限定,并提示用户:“密码只可为6位”。
    7.判断两次密码输入内容一致,并提示用户:“密码修改成功”。
    8.提示"密码修改成功"后给弹窗添加隐藏事件。
    9.将当前用户的uid值和password密码获取到,并交给ajax去处理,ajax将uid和password参数传给后台Controller。

    二、后台需要做的:
    1.给Controller类的方法创建外来资源访问的名称,和相对应的请求方法。
    2.添加注解@ResponseBody接收ajax中json类型的数据参数。
    3.在Controller的方法中使用@RequestParam接收前台传来的uid和password参数值。
    4.生成6位随机数,把前台传来用户输入的密码进行MD5加密处理,再加盐值即为最终数据库需要存储的用户密码。
    5.将最终经过加密后的密码加入到map中。
    6.在Dao数据层接口中创建需要修改数据库用户密码的方法,在Dao数据层接口中的实现类DaoImpl中进行实现,
    实现类里是对数据库用户密码修改的具体操作的代码实现。
    7.在Service业务层接口中创建与Dao数据层接口中一致的方法,在Service业务层接口的实现类ServiceImpl中实现Service业务层接口中的 此方法,方法体里调用的是Dao数据层接口中的方法。
    8.在Controller中进行调用Service接口的此方法即可,在调用之前需要使用注解@Autowired 把Service接口装配进来。
    9.不要忘记保存用户新密码明码和随机生成的6位盐值存储数据库中。

    展开全文
  • 修改密码的流程

    千次阅读 2019-06-18 08:44:47
    一般用户修改密码都是要有一下步骤的。 一丶填写原密码 二丶填写新密码并填写确认密码。 如下图。 当密码都填写完成了之后就可以去判断这些密码然后到数据库去修改了。 第一步判断数据是否填写完整。新密码与确认新...

    一般用户修改密码都是要有一下步骤的。
    一丶填写原密码
    二丶填写新密码并填写确认密码。
    如下图。
    在这里插入图片描述
    当密码都填写完成了之后就可以去判断这些密码然后到数据库去修改了。
    第一步判断数据是否填写完整。新密码与确认新密码是否一致。如果不一致那么就无法修改。如下代码

    var Ypassword = $("#Ypassword").val();//原密码
    var Xpassword = $("#Xpassword").val();//新密码
    var Qpassword = $("#Qpassword").val();//确认密码

    if (Ypassword =="" || Xpassword =="" || Qpassword =="") {
    layer.alert(“请填写完整!”, { icon: 0, title: “提示” });
    return;
    }
    if (Xpassword!=Qpassword) {
    layer.alert(“你两次输入的新密码不一致,请重新输入!”,{ icon: 0, title: “提示” });
    }

    第二步丶判断新密码是否跟原来的密码重复,如果重复请重新填写

    if(Ypassword==Xpassword){
    layer.alert(“你两次输入的新密码不一致,请重新输入!”,{ icon: 0, title: “提示” });
    }

    当一切判断条件完成之后就提交数据去控制器修改。
    这里提交的数据只需要提交3条,分别是原密码,新密码,单前登陆的用户ID.
    控制器接收到了着3条数据之后就去查询,根据用户ID,密码查询,如果用户密码错误就提示原密码输入不正确。如果修改成功就清楚登陆的Session。

    try
    {
    var SelectP = (from tbUser in MyModels.S_User
    where tbUser.UserID == UserID &&
    tbUser.Password == Jpassword
    select tbUser).Single();
    SelectP.Password = password;
    MyModels.Entry(SelectP).State = EntityState.Modified;
    if (MyModels.SaveChanges() > 0)
    {
    strMsg = “修改成功”;
    Session.Clear();
    }
    }
    catch (Exception)
    {
    strMsg = “您输入的旧密码不存在!”;
    }

    回到页面如果修改成功就直接刷新当前页面,因为控制器清空了session如果一刷新就会回到登陆页面。
    if (Msg==“修改成功”) {
    layer.alert(Msg,{ icon: 1, title: “提示” },function(){
    location.reload();
    });

    展开全文
  • jQuery+ajax实现修改密码验证

    万次阅读 多人点赞 2014-02-14 14:58:13
    修改密码是比较简单的功能,要求如下: 1、原密码必须输入正确,才可以修改密码 2、新密码需在6-18位之间 3、第二次输入的新密码必须与第一次相同。 4、前三个条件同时满足的时,修改密码才能成功,否则显示错误提示...

    修改密码是比较简单的功能,要求如下:

    1、原密码必须输入正确,才可以修改密码

    2、新密码需在6-18位之间

    3、第二次输入的新密码必须与第一次相同。

    4、前三个条件同时满足的时,修改密码才能成功,否则显示错误提示信息。

    5、错误提示信息和验证信息全部使用ajax提交、响应

    效果图如下:

    (1)

    (2)


    (3)

    (4)修改成功之后显示提示信息,2秒后自动消失。


    HTML代码如下:

    <ul class='xform-ul'>
                                    <li>
                                        <div class='form-label'>Existing password :</div>
                                        <div class='form-input'>
                                            <input type='password' id="oldpassword" name="oldpassword"/><div style="display: inline" id="tip1"></div>
                                        </div>                                
                                    </li>
                                    <li>
                                        <div class='form-label'>New password :</div>
                                        <div class='form-input'>
                                            <input type='password' id="password1" name="password1" placeholder="length must be 6-18"/><div style="display: inline" id="tip2">
                                        </div>
                                    </li>                            
                                    <li>
                                        <div class='form-label'>Re-enter password :</div>
                                        <div class='form-input'>
                                            <input type='password' id="password2" name="password2" placeholder="must match with the first"/><div style="display: inline" id="tip3">                                       
                                        </div>
                                    </li>
                                    <li class="text-center">
                                        <div class="btn-submit"><div id="btn">Modify</div></div>
                                    </li>
                                    <li class="text-center">
                                        <div id="tip4"></div>
                                    </li>
                                </ul>

    js代码如下:

      <script>
        $(document).ready(function(){                
            $("#oldpassword").blur(function(){
                    var param=$("#oldpassword").val();
                    $.ajax({
                        url:"${HttpPath}/user/checkoldpassword",
                        data:{oldpassword:param},                 
                        success:function(e){
                            if(e.code==1){                            
                                 $("#tip1").html("<font color=\"green\" size=\"2\">  Correct</font>");
                            } 
                            else{                                 
                                $("#tip1").html("<font color=\"red\" size=\"2\">  Wrong</font>");
                            }
                        }                 
                    });
               });
              $("#password1").blur(function(){
                  var num=$("#password1").val().length;
                  if(num<6){
                       $("#tip2").html("<font color=\"red\" size=\"2\">  too short</font>");                
                  }
                  else if(num>18){
                       $("#tip2").html("<font color=\"red\" size=\"2\">  too long</font>");                 
                  }
                  else{
                      $("#tip2").html("<font color=\"green\" size=\"2\"> Accept</font>");                
                  }
              }) ;
              $("#password2").blur(function(){
                  var tmp=$("#password1").val();
                  var num=$("#password2").val().length;
                  if($("#password2").val()!=tmp){
                      $("#tip3").html("<font color=\"red\" size=\"2\">  Wrong</font>");                 
                  }
                  else{
                      if(num>=6&&num<=18){
                          $("#tip3").html("<font color=\"green\" size=\"2\">  Correct</font>");                    
                      }                 
                      else{
                          $("#tip3").html("<font color=\"red\" size=\"2\">  invalid</font>");                           
                      }                
                  }
              });
                  $("#btn").click(function(){
                      var flag=true;
                      var old=$("#oldpassword").val();
                      var pass=$("#password1").val();
                      var pass2=$("#password2").val();
                      var num1=$("#password1").val().length;
                      var num2=$("#password2").val().length;
                      if(num1!=num2||num1<6||num2<6||num1>18||num2>18||pass!=pass2){
                          flag=false;
                      }
                      else{
                          flag=true;
                      }
                      if(flag){                   
                      $.ajax({
                          url:"${HttpPath}/user/editPassowrdyet",
                          data:{oldpassword:old,password:pass},
                          success:function(e){                         
                              if(e.code==1){
                                  $("#tip4").show().html("<font color=\"green\" size=\"3\">  Edit Success!</font>");
                                  $("#oldpassword").val("");
                                  $("#password1").val("");
                                  $("#password2").val("");
                                  $("#tip1").empty();
                                  $("#tip2").empty();
                                  $("#tip3").empty();
                                  $("#tip4").delay(2000).hide(0);        
                              }
                              else{
                                  $("#tip4").show().html("<font color=\"red\" size=\"3\">  OldPassword is Wrong!</font>");
                              }                                     
                             }
                      });
                  }
                  else{
                      
                      $("#tip4").show().html("<font color=\"red\" size=\"3\">  Please follow the tips!</font>");
                  }
                  });                  
            });
            </script>

    2秒后自动消失的特效是通过jquery的delay()和hide()函数来实现的,因为是异步验证,不刷新页面,想让他再出现,就要调用show()函数。

    另外一个值得注意的是,flag那个标记是非常重要的,只要有不符合要求的输入,就要把flag置为false,阻止用户提交修改。

    展开全文
  • 在数据库命令行里,输入:   mysql&gt; set password for root@localhost = password('123'); ...ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your ...

    在数据库命令行里,输入:
     

    
    mysql> set password for root@localhost = password('123');
    
    
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('123')' at line 1
    

    提示,让我看看语法,可看过来看过去,也没输错啊!

    网上查询得知,有可能是,我这数据库版本有点新,有些许改变

     

    尝试:

    alter user 'root'@'localhost' identified by '123';
    Query OK, 0 rows affected (0.33 sec)

    成功!!!

    展开全文
  • 修改密码

    2014-07-05 21:10:00
    def updatePassword(): message="" oldPwd=raw_input("Please input your old password:\n").strip() if(oldPwd != "python"): message="原始密码输入出错,请重新输入吧" sys.exit() else: ...
  • Minio修改密码

    2020-11-03 10:54:43
    Minio修改密码介绍拉取镜像启动停止删除容器重新启动,设置新的密码 介绍 最新版的Minio安装官方安装后,登录进去后修改密码提示不能修改 这对生成环境是不可接受的 现在能想到的是,停止原服务,重新启动设置新的...
  • MySql8.0修改root密码

    万次阅读 多人点赞 2019-06-20 12:11:04
    MySQL 5.7 的版本,因为在user表中没有password字段,一直使用下边的方式来修改root密码 use mysql; ...现在要用MySQL8.0.11版本,装好MySQL后用上边方法修改密码,一直报错。后来去掉passwor...
  • Linux 修改用户密码

    万次阅读 多人点赞 2019-06-05 16:45:32
    Linux修改密码用 passwd 命令,用root用户运行passwd ,passwd user_name可以设置或修改任何用户的密码,普通用户运行passwd只能修改它自己的密码。 [root@localhost ~]# passwd ##修改root用户密码 Changing ...
  • Linux修改用户密码

    万次阅读 2018-11-16 15:51:49
    人工智能,零基础入门!... linux,root用户登录成功后,要修改用户密码步骤: 【1】输入命令:passwd 【2】输入新密码,然后确认新密码,就是输入两次...#####linux系统无法查看当前用户密码,只能是修改密码 ...
  • Linux 用户切换、修改用户名、修改密码

    万次阅读 多人点赞 2017-07-08 10:42:45
    一、用户切换 "$":普通用户提示符 "#":root用户提示符 1.普通用户到root: 方式一:命令:su然后输入root密码 此种方式只是切换了root身份,但Shell环境仍是普通用户的Shell,pwd命令一下,目录仍然是...
  • linux如何修改用户密码

    万次阅读 2018-03-05 18:26:00
    1、首先,要用CRT软件连接Linux系统。2、首选,确认是用root用户登录系统的。输入命令id 查看登录用户信息。结果如下:# id uid=0(root) gid=0(root) groups=0(root) 3、若修改root自己的密码,直接输入 passwd . ...
  • 地址:linux修改用户密码 方法/步骤 首先,要用mobaxterm软件连接Linux系统。 1.Linux怎么修改用户密码 首选,确认是用root用户登录系统的。 输入命令: id ,查看登录用户信息。 2.Linux怎么修改用户密码修改...
  • linux 修改用户密码

    2016-07-12 14:31:46
    sudo passwd user
  • 一、普通用户修改自己的密码,如果不符合密码验证机制的话就修改不成功,会有各种报错: “BAD PASSWORD: it's WAY too short”,这是报密码太短,不符合/etc/login.defs的设置。 “BAD PASSWORD: it is based on ...
  • linux 命令行修改密码In Linux, we use passwd to change password, but passwd requires input from stdin to get the new password. It is common case that we may want to change the password non-...
  • Linux修改普通用户密码

    万次阅读 热门讨论 2018-09-29 21:27:15
      此前提为你修改虚拟机用户密码所必须的软件:   XShell任意版本即可 【具体步骤】   1、打开XShell软件   2、root用户通过XShell连接所要修改用户密码所在的虚拟机(此处主要指IP)   3、输入以下命令:...
  • Linux更改用户密码

    2017-12-03 19:09:05
    Linux更改用户密码 [日期:2013-03-21] 来源:Linux社区 作者:wentasy [字体:大 中 小] 环境 RedHat Linux 9 + VWWare 7.1.2 + Putty 0.62 问题 Linux更改用户密码 解决 ...
  • Linux修改用户密码使用期限: 用chage命令进行查看。主要用与密码失效是通过此命令来管理 [root@node2 ~ ]# chage --help Usage: chage [options] LOGIN Options: -d, --lastday LAST_DAY set date of last ...
  • linux通过单用户修改用户密码的方法

    千次阅读 2017-02-12 21:04:13
    学习韩顺平老师的《一周学会linux》,记录了一个修改用户密码的小技巧。比如root用户的密码我们忘记了,无法登录,可以通过单用户的方式来修改。 使用的linux系统是fedora core 5,操作步骤如下: 1.启动系统 2....
  • 1、首先,要用CRT软件连接Linux系统。  2、首选,确认是用root用户登录系统的。  输入命令: id ,查看登录用户信息。 3、若修改root自己的密码,直接输入 passwd .  输入两遍,新密码即可。  4、若...

空空如也

1 2 3 4 5 ... 20
收藏数 1,109,495
精华内容 443,798
关键字:

修改密码