问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何给网站的后台数据库用MD5加密?

发布网友 发布时间:2022-04-09 05:43

我来回答

2个回答

懂视网 时间:2022-04-09 10:04

<body> 2 <div id="header"> 3 <div id="header_con"> 4 <a href="javascript:;" onclick="showRegBox()">注册</a> 5 <a href="javascript:;" onclick="ShowLoginBox()">登录</a> 6 </div> 7 </div> 8 <div id="loginBox"> 9 <div class="login_Item"> 10 <input type="text" id="TxtUserName" placeholder="手机邮箱/用户名" /> 11 </div> 12 <div class="login_Item"><input type="password" id="TxtPwd" placeholder="请输入密码" /></div> 13 <div class="login_Item"><a href="javascript:;" onclick="login()">登录</a></div> 14 </div> 15 <div id="Regbox"> 16 <div class="login_Item"><input type="text" id="TxtRegUserName" placeholder="手机邮箱/用户名" /></div> 17 <div class="login_Item"><input type="password" id="TxtRegPwd" placeholder="请输入密码" /></div> 18 <div class="login_Item"><input type="text" id="TxtRegqq" placeholder="QQ号"/></div> 19 <div class="login_Item"><input type="text" id="TxtRegEmail" placeholder="邮箱" /></div> 20 <div class="login_Item"><a href="javascript:;" onclick="Reglogin()">注册</a></div> 21 </div> 22 </body>

 

   css代码:

 1 * {
 2  margin:0px;
 3  padding:0px;
 4 }
 5 #header {
 6  height:40px;
 7  width:100%;
 8  background:#000000;
 9 }
10 
11 a {
12  text-decoration:none;
13 }
14 #header a {
15  float:right;
16  color:#ffffff;
17  line-height:40px;
18  margin-left:10px;
19 }
20 #header_con {
21  width:1200px;
22  margin:0px auto;
23 }
24 .login_Item {
25  margin-left:20px;
26 }
27 .login_Item input {
28  width:348px;
29  height:40px;
30  margin-top:10px;
31  border:solid 1px #04a6f9;
32 }
33 .login_Item a {
34  margin-top:20px;
35  width:350px;
36  height:40px;
37  display:block;
38  background:#04a6f9;
39  color:#ffffff;
40  line-height:40px;
41  text-align:center;
42 }
43 #loginBox {
44  display:none;/*//隐藏状态*/
45  margin:0px auto;
46 }
47 
48 #Regbox {
49  display:none;
50 }

 

   js代码:[用了layer插件]

 1 /// <reference path="_references.js" />
 2 /// <reference path="jquery.md5.js" />
 3 
 4 function ShowLoginBox()
 5 {
 6  layer.open({
 7  type: 1,
 8  title: "用户登录",
 9  //设置div大小
10  area: ["390px", "300px"],
11  content: $("#loginBox")
12  });
13 }
14 
15 function login()
16 {
17 //1.获取到用户名和密码
18 var username = $.trim($("#TxtUserName").val());
19 var pwd =$.md5( $.trim($("#TxtPwd").val()));
20 //2.判断用户名和密码是否为空
21 if (username == "" || pwd == "") {
22  layer.alert("用户名或密码不能为空!",
23   {
24   title: "提示:",
25   icon: 5
26   });
27  }
28 else
29  {
30  $.post("/Handler1.ashx", { "UserName": username, "Pwd": pwd,"cmd":"login" }, function (data)
31  {
32  if (data == "登录成功") {
33   //layer.alert("登录成功!",
34   layer.msg("登录成功!",
35    {
36    //title: "提示:",
37    icon: 6
38    });
39   }
40  else
41   {
42   layer.msg("用户名或密码不正确",
43    {
44    //title: "提示:",
45    icon: 5
46    });
47   }
48  });
49  }
50 }
51 
52 function showRegBox()
53 {
54  layer.open({
55  type:1,
56  title:"注册",
57  area: ["390px", "350px;"],
58  //div的内容
59  content:$("#Regbox")
60  });
61 }
62 
63 function Reglogin()
64 {
65 //1.获取到输入的内容
66 var username = $.trim($("#TxtRegUserName").val());
67 var pwd =$.md5($.trim($("#TxtRegPwd").val()));
68 var qq = $.trim($("#TxtRegqq").val());
69 var email = $.trim($("#TxtRegEmail").val());
70 //并做判断
71 if (username == "" || pwd == "") {
72  layer.msg("用户名或密码不能为空!");
73  }
74 else
75 {//cmd用做标示,判断是注册还是登录
76  $.post("/Handler1.ashx", { "UserName": username, "Pwd": pwd,"qq":qq,"email":email,"cmd": "reg" }, function (data)
77  {
78  if (data == "注册成功") {
79   layer.msg("恭喜你,注册成功!",
80    {
81    icon: 6
82    });
83   }
84  else
85   {
86   layer.msg(data,
87    {
88    icon:5
89    });
90   }
91  });
92  }
93 }

 

   ajax代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Data;
 6 using System.Data.SqlClient;
 7 
 8 namespace baidu20160707
 9 {
 10 /// <summary>
 11 /// Handler1 的摘要说明
 12 /// </summary>
 13 public class Handler1 : IHttpHandler
 14  {
 15  public HttpContext context;
 16  public string strResult = "";
 17  public void ProcessRequest(HttpContext context)
 18  {
 19  this.context = context;
 20  string cmd=context.Request.Form["cmd"];
 21  switch (cmd)
 22   {
 23   case "login":
 24   strResult = loginAjax();
 25   break;
 26   case "reg":
 27   strResult = RegAjax();
 28   break;
 29   }
 30   context.Response.Write(strResult);
 31  }
 32 
 33  //登录
 34  public string loginAjax()
 35  {
 36  //1.接收传过来的用户名和密码
 37  string username = context.Request.Form["username"];
 38  //类名调用方法,32位,再做加盐处理
 39  string pwd =Md5Class.GetMD5( context.Request.Form["pwd"]+"傻逼玩意",32);
 40  //所在对应的id是否存在
 41  //string strsql = string.Format("select id from Users where UserName=‘{0}‘ and Pwd=‘{1}‘", username, pwd);
 42  //sql注入处理1.@传参的方式,, username, pwd不要,‘分号也不要‘
 43  string strsql = string.Format("select id from Users where UserName=@UserName and Pwd=@Pwd");
 44  //sql注入处理2.调用SqlParameter[]数组对数据进行过滤
 45  SqlParameter[] paras = new SqlParameter[] 
 46   {
 47   new SqlParameter("@UserName",SqlDbType.NVarChar),
 48   new SqlParameter("@Pwd",SqlDbType.NVarChar)
 49   };
 50  //sql注入处理3.指定它的值
 51  paras[0].Value = username;
 52  paras[1].Value = pwd;
 53  //sql注入处理,4.不能忘记把数组对象传进去
 54  if (SqlHelper.Exists(strsql,paras))
 55   {
 56   //context.Response.Write("登录成功");
 57   return "登录成功";
 58   }
 59  else
 60   {
 61   //context.Response.Write("用户名或密码不正确");
 62   return "用户名或密码不正确";
 63   }
 64  }
 65 
 66  //注册
 67  public string RegAjax()
 68  {
 69  //接收传过来的用户名和密码
 70  string username=context.Request.Form["username"];
 71  string pwd=Md5Class.GetMD5(context.Request.Form["pwd"]+"傻逼玩意",32);
 72  string qq=context.Request.Form["qq"];
 73  string email = context.Request.Form["email"];
 74  //string strsql1 = string.Format("select id from Users where UserName=‘{0}‘ ",username,pwd);
 75  string strsql1 = string.Format("select id from Users where UserName=@UserName ");
 76  SqlParameter[] paras1 = new SqlParameter[] 
 77   {
 78   new SqlParameter("@UserName",SqlDbType.NVarChar)
 79   };
 80  paras1[0].Value = username;
 81  if (SqlHelper.Exists(strsql1, paras1))
 82  //if (SqlHelper.Exists(strsql1))
 83   {
 84   return "该用户已注册,请重新输入";
 85   }
 86  else
 87   {
 88   //不存在就注册
 89   //string strsql2 = string.Format("insert into Users (UserName,Pwd,QQ,eMail) values(‘{0}‘,‘{1}‘,‘{2}‘,‘{3}‘)", username, pwd, qq, email);
 90   //, username, pwd, qq, email
 91   string strsql2 = string.Format("insert into Users (UserName,Pwd,QQ,eMail) values(@UserName,@Pwd,@QQ,@eMail)");
 92   SqlParameter[] paras2 = new SqlParameter[] 
 93   {
 94   new SqlParameter("@UserName",SqlDbType.NVarChar),
 95   new SqlParameter("@Pwd",SqlDbType.NVarChar),
 96   new SqlParameter("@QQ",SqlDbType.NVarChar),
 97   new SqlParameter("@eMail",SqlDbType.NVarChar),
 98   };
 99   paras2[0].Value = username;
100   paras2[1].Value = pwd;
101   paras2[2].Value = qq;
102   paras2[3].Value = email;
103   //插入处理
104   if (SqlHelper.ExecteNonQueryText(strsql2, paras2) > 0)
105   {
106   return "注册成功";
107   }
108   else
109   {
110   return "注册失败";
111   }
112   }
113  }
114  public bool IsReusable
115  {
116  get
117   {
118   return false;
119   }
120  }
121  }
122 }

    效果:点击登录弹出登录框,点击注册,弹出注册框

技术分享

 

四、MD5加密算法

     MD5加密算法:大多数情况下,用户的密码是存储在数据库中的,如果不采取任何的保密措施,以明文的方式保存密码,查找数据库的人员就可以轻松获取用户的信息,所以为了增加安全性,对数据进行加密是必要的。MD5,是一种用于产生数字签名的单项散列算法,它以512位分组来处理输入的信息,且每一分组又被划分为16位子分组,经过一系列处理,算法的输入由4个32位分组级联后生成一个128位散列值。

    没有加密之前的明文通过解析的效果:

      技术分享

     注册信息:

     技术分享

  建议:从源头解决这种问题,运用正则表达式从源头入手,尽量设置一些含有特殊字符的密码。

  虽然MD5加密是单项加密,但其结构还是可以破解的。所以,通常情况下,我们后做[两次md5加密,再做加盐处理]。

 

  用了sql注入处理+MD5两次加密以及加盐处理之后的效果:

    技术分享

   数据库显示的该条数据:

   技术分享

 

五、sql注入

   sql注入是指攻击者利用数据库数据的漏洞进行攻击,特别是在登录时,用户常利用SQL语句中的特定字符创建一个恒等条件,从而不需要任何用户名和密码就可以访问网站数据。

   具体:http://www.cnblogs.com/wangwangwangMax/p/5551614.html

 

一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]

标签:

热心网友 时间:2022-04-09 07:12

你说的是 JSP程序?

一般通过一个md5编码的程序进行,在提交到数据库后即是md5的编码

你再下几个程序,里面有实例,看看就知道了

推荐源码站 http://down.chinaz.com
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
一拳一拳打峰哥是什么歌_一拳一拳打峰哥歌曲介绍 网上办理这个准生证然后没有领取不知道点到哪了然后就没法再领取 绿油油的叠词是什么? 什么的小溪叠词填空 硅胶礼品特性 华东理工大学长江学院是一本吗 东华理工大学长江学院是公办还是民办大学 东华理工大学长江学院是一所... 模压硅胶制品如何成型的 东北理工大学长江学院是公办还是民办 东华理工大学长江学院是几本大学 为什么更滴滴快车更新之后,倒计时还没完,订单就已被抢? 有没有破解滴滴打车到计时的办法 滴滴打车如果司机多计时怎么办? 嘀嘀打车出租车什么时候开始计时 打车滴滴7.5公里多少钱? 滴滴打车的当前位置,到某个哪个地方,它会在客户端计时吗? 为什么排卵期过了,排卵试纸还会出现有两条线 排卵试纸在什么时候用?排卵过后排卵试纸还显示吗? 滴滴打车是不是一上车就开始计时计费的,不管开不开车都一样?我跟我女朋友是异地恋,我发现 滴滴打车为什么说好的价怎么变成计时的呢 滴滴专车师傅们怎么计时 当面试结论为那种情况时,需要在评分表应写出评语 广电总局的电影审查评分标准是什么,多少分算高分呢? EICC认证的认证评分标准 若,一切都如心所愿,现实是否会黯然离去? 红豆生南国是什么意思? 供应商稽核评分表 (GP)中GP是什么意思 时光清浅,岁月依旧,年没年末,年初年出,愿一切安好。这句话什么意思? 办卫生许可证需要什么资料?需要准备什么? 是什么事都如心所愿吗? 购房用住房公积金可以贷多少款? 请问:在南京工作,月收入5000,公积金384,我可以用公积金贷款最多能贷多少钱?越详细越好,谢谢! 夫妻俩都缴满5年的公积金了,老婆是江苏省公积金我是南京市公积金,请问公积金贷款最高能贷多少额度?省 我想在南京买房,但是没有积蓄,听说用公积金能贷款,可我账户里就5000多块钱,能贷到钱么 睡前吃葡萄干对身体好不好? 晚上吃葡萄干有什么好处!有什么坏处呢! 晚上吃葡萄有什么好处 睡前吃葡萄对身体好不好? 睡前吃葡萄有什么好处 晚上睡觉前吃二个核桃35克葡萄干对身体有什么好处和坏处? 晚上可以吃葡萄吗 葡萄干的美容效果? 晚上吃多少葡萄干是有好处的 晚上吃葡萄有助睡眠,晚上睡觉前吃几粒葡萄可以提高睡眠有助睡眠。 网站后台密码忘了,可数据库经过md5加密,如何解决?谢谢 牛奶丝面料的裙子吸附在裤子上该怎么办 冬天到了,上火应该吃哪些水果降火啊? 昨晚梦见和朋友一起去要回欠账50多万? 做梦要账,吵架很严重,后来把本钱要回来了啥意思? 梦见有个问我要账我还了以后想起没欠他的钱是什么意思?