当前位置:  编程技术>.net/c#/asp.net

asp.net实现md5加密

    来源: 互联网  发布时间:2014-08-25

    本文导语:  MD5加密简单的说就是把一段明文 通过某种运算方式 求出密文。例如:明文为:abcdefg 通过一些列运算 得到 密文 7ac66c0f148de9519b8bd264312c4d64 它具有两个特性:1.无碰撞,2.不可逆。 无碰撞是指: 7ac66c0f148de9519b8bd264312c4d64 这段密文...

MD5加密简单的说就是把一段明文 通过某种运算方式 求出密文。例如:明文为:abcdefg 通过一些列运算 得到 密文 7ac66c0f148de9519b8bd264312c4d64

它具有两个特性:1.无碰撞,2.不可逆。

无碰撞是指: 7ac66c0f148de9519b8bd264312c4d64 这段密文 只能由 abcdefg 这段明文得到,除此之外其他的 明文加密后 其值 绝对不会等于 7ac66c0f148de9519b8bd264312c4d64,也就是说 没有那两个明文 加密后 会得到相同的密文。

不可逆是指: 明文通过加密后得到密文,而无法通过密文 求出明文。也就是说 当我们知道明文 adcdefg 可以通过加密得到 7ac66c0f148de9519b8bd264312c4d64,但是我们如果知道 某段文字 加密后 得到7ac66c0f148de9519b8bd264312c4d64,却无法算出 7ac66c0f148de9519b8bd264312c4d64这段文字是由谁加密而来的。

那么有同学一定会问,具体应该运用在什么地方?

一般来说 我们在做网站登录系统的时候 密码都是密文保存的,一般用的都是MD5加密。

用户在填写用户名 密码 点击注册之后,我们验证通过,要把用户信息存入数据库的时候,就需要先把用户输入的密码,通过MD5加密的方式,把加密后的密文,存入密码的字段。

那么一定有同学会细心的发现,刚刚还提到过 MD5加密是不可逆的,那么用户登录的时候如何判断用户输入的密码是否正确的呢?

例如 用户设置的密码 为 abcdefg,而存储的时候 我们存储的是 abcdefg加密过之后得到的值 7ac66c0f148de9519b8bd264312c4d64,那么用户再次登录时 会输入密码abcdefg,我们如何比较两者是否相等?

我们无法通过 加密后的值换算出 加密前的值,因此 我们通常的做法是,把用户再次登录时 输入的密码 再次加密 和数据库中 存放的值进行比对,如果相等 则说明输入的密码正确。

OK,基本原理和运用场景基本说的差不多了,最后再来说说 在ASP.NET中如何进行MD5加密。

在ASP.NET中MD5的加密方式很简单,代码如下:

代码如下:

FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();

需要注意的是,如果MD5加密的时候转换的是小写,那么在验证的时候也要转换成小写,保持统一。另外上述方式为32位的MD5加密方式,如果是16位的 则取32位加密结果的中间16位的值即可。

这里还有示例,大家参考一下

代码如下:

///
 /// MD5加密
 ///
 /// 需要加密的明文
 /// 返回32位加密结果
 public static string Get_MD5(string strSource, string sEncode)
 {
     //new
     System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

     //获取密文字节数组
     byte[] bytResult = md5.ComputeHash(System.Text.Encoding.GetEncoding(sEncode).GetBytes(strSource));

     //转换成字符串,并取9到25位
     //string strResult = BitConverter.ToString(bytResult, 4, 8); 
     //转换成字符串,32位

     string strResult = BitConverter.ToString(bytResult);

     //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉
     strResult = strResult.Replace("-", "");

     return strResult.ToLower();
 }


    
 
 

您可能感兴趣的文章:

  • asp.net EncryptHelper 加密帮助类代码分享
  • asp.net使用cookie与md5加密实现记住密码功能
  • ASP.NET会员注册登录模块(MD5加密,防止SQL注入,判断是否注册)
  • asp.net实现文本的DES加密、MD5散列值、DSA的数字签名
  • 在ASP中可以轻易实现,不知道在JSP中能否实现?
  • Linux平台下哪种方法实现ASP好?
  • 求解!Java如何能在多个applet之间实现类似asp的session类!
  • 调试jsp的时如何实现像asp中的response.end的效果
  • 怎么用能让asp实现统计在线人数的功能。在线等待!!!帮忙送分!
  • 在jsp 中如何实现像asp 中的页面弹出式的菜单
  • asp.net 参数不同共用一个页面的实现方法
  • Asp.net防止重复提交的实现方法
  • 用linux做服务器运行ASP.net网站,请问具体怎样实现??
  • ASP.NET MVC3 实现全站重定向的简单方法
  • 在jsp中如何实现与asp中的Request.ServerVariables("SCRIPT_NAME")同等的功能?
  • Jsp中怎么实现类似ASP中split函数的功能?
  • 如何实现ASP中类似Global.asa的功能???
  • jsp中如何实现asp中的response.end,或php中的exit()功能?
  • java实现的asp服务器 OpenASP
  • ASP的功能在JSP中怎么实现呀?谢谢!!!
  • asp去掉html,保留img br p div的正则实现代码
  • asp.net 实现php的md5()函数功能
  • asp.net session实现用户登录的疑问
  • 怎样将Tomcat嵌入IIS中,实现用ASP与JSP都用IIS来做!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • asp.net文字水印功能简单代码
  • jQuery Web Controls ASP.Net
  • ASP.NET 门户平台 Dropthings
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • Asp.Net如何将多个RadioButton指定在一个组中
  • 用C#,asp.net 做的网站,能用Linux做服务器吗?
  • asp.net实例 定义和使用asp:AccessDataSource
  • 有没有办法把客户端IP和计算机名记录在asp.net服务器上?
  • asp.net获取用户ip地址公共类
  • asp.net 禁用viewstate(web.config中配置)的方法
  • asp.net读取本地与全局资料文件的代码
  • asp.net button 绑定多个参数
  • Asp.net日历控件显示年和月
  • 重新注册asp.net 2.0的方法
  • Linux操作系统能运行Asp.net的项目吗?
  • c#(asp.net)接收存储过程返回值的方法
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3