asp.net mvc怎么给密码加密后存进数据库,然后再从数据库取出,解密再显示出来??

asp.net mvc怎么给密码加密后存进数据库,然后再从数据库取出,解密再显示出来??,第1张

现在通用的都是 MD5非对称加密方法来保证用户密码的安全,意思就是只能加密,不能解密。

如果需要解密码就得用对称加密方法。在.NET库的System.Security.Cryptography命名空间中,有有RC2、DES、TripleDES和Rijndael四种对称加密方法,可选用

你在传入数据库前把密码转换为md5,在注册界面上就转换,不过现在md5也不保密,在百度上一查就能反译出来,所以一般转换为md5后再把其中的一些数字或字母替换为别的字母,这样即使别人进入数据库里也不能把加密又替换后的密文改换为明文了,这种规则只要你自己知道就行

public class People{

public int id{setget}

public string name {setget}

public string pwd{setget}

}

首先 Inherits="System.Web.Mvc.ViewPage<People>

<%using (Html.BeginForm()) {%>

<%=Html.TextBox("id", Model.id, new { style="display:none"})%>

<%=Html.TextBox("name", Model.name)%>

<%=Html.Password("pwd", Model.pwd)%>

<input type="submit" value="提交"/>

<%}%>

[HttpPost]

public ActionResult Index([Bind(Include = "name,pwd")]FormCollection data){

var name = data["name"]

var pwd = data["pwd"]

//判断

//用MD5给pwd加密 可以写个拓展方法

var pwd = pwd.ToMd5()

//存入并用try catch包裹

//提示成功或失败

Request.Write("<script>alert('成功或失败')</script>")

return null

}

public static string ToMd5(this string input){

MD5 md5 = new MD5CryptoServiceProvider()

DES des = new DESCryptoServiceProvider()

byte[] res = md5.ComputeHash(Encoding.Default.GetBytes(input), 0, input.Length)

String returnThis = ""

for (int i = 0i <res.Lengthi++)

{

returnThis += System.Uri.HexEscape((char)res[i])

}

returnThis = returnThis.Replace("%", "")

returnThis = returnThis.ToLower()

return returnThis

}

最后:

一般的信息加密都是值用ssl 的https站点的通行加密这只要买了ssl的证书在iis中配置就好了

一般代码中的加密要做是把类似密码这样的安全信息做md5加密

判断时只要取出值 然后把判断值同样用md5加密即可

以上提供MVC的一般开发代码希望对您有帮助


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9973855.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存