当要进行MD5加密的字符串不含中文时,那么ASP.NET的加密结果和ASP是一致的:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("www.mzwu.com", "MD5"));
//结果:D66E1F138689B9B5AA4C520D9EAFFB61
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->Response.Write(MD5("www.mzwu.com",32))
'结果:d66e1f138689b9b5aa4c520d9eaffb61
当要进行MD5加密的字符串含中文时,两者的加密结果就不一致了:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("木子屋", "MD5"));
//结果:34D9CBD5164C47058DFA3AF832E2D1DC
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
Response.Write(MD5("木子屋",32))
'结果:0a40a90190da023ae7aa17771663a41e
我们知道,ASP.NET默认使用utf-8编码格式,而ASP使用的是gb2312编码格式,正是由于这编码格式不同,才导致了两者对中文加密结果的不同。下边我们看看怎么让ASP.NET的编码结果和ASP一样,那也就意味着要让ASP.NET采用gb2312编码格式,这点FormsAuthentication.HashPasswordForStoringInConfigFile()方法是办不到的,我们得使用System.Security.Cryptography.MD5CryptoServiceProvider对象的ComputeHash方法来进行加密:
若要再使用utf-8加密也非常容易:
问题似乎是比较完美的解决了,我们再来完善一下:当要加密的字符串是从其他页面传进来时,其他页面采用的编码格式可能是gb2312,可能是utf-8,还可能是其他的编码格式,怎么解决呢?你可能会觉得很简单啊,使用它先前的编码格式进行加密不就行了?实际测试中你会发现两个很严重的问题:
1. 我们无从知道参数传过来时是使用什么编码格式;
2. 如果两个页面使用的编码方式不一样,那么Request接收到的参数值会乱码,那就不要谈加密了;
问题1比较好解决,要求对方传参数的同时必须多加一个参数说明采用的编码格式,问题2的解决方法是不使用Request直接接收参数值,废话不多说了,看下边的函数:
说明1:上边代码需要引入的命名空间
using System.Text;
using System.Web.Security;
using System.Security.Cryptography;
using System.Collections.Specialized;
说明2:32位密文如何转化成16位?
16位密文是32位密文的9到24位字符。如:"0a40a90190da023ae7aa17771663a41e"→"90da023ae7aa1777"
分享到:
相关推荐
ASP.NET中的MD5加密是一种广泛...总之,ASP.NET中的MD5加密虽然在安全性上已不被推荐,但在理解哈希函数和基础加密概念时仍具有学习价值。开发者应根据实际需求选择更适合的加密算法,并遵循最佳实践,确保数据安全。
标签中的“Asp.Net MD5”和“MD5加密程序”进一步强调了这是一个针对Asp.Net平台的MD5加密解决方案。Asp.Net是Microsoft开发的一个Web应用程序框架,用于构建动态网站、Web应用和Web服务。MD5加密在这里用于保护敏感...
综上所述,ASP.NET通过MD5提供了一种加密和验证数据的方法,但鉴于MD5的安全性问题,建议使用更安全的替代方案。在实际项目中,我们需要根据需求选择合适的加密算法,并遵循最佳安全实践,以保护用户的敏感信息。
ASP.NET的MD5和DES加密和解密算法 非常好的资源 欢迎大家参考
在 ASP.NET Core 中,使用 MD5 算法来加密和解密字符串是非常重要的一步。MD5(Message-Digest Algorithm 5)是一种常用的哈希算法,用于将任意长的数据转换为一个固定长度的密文。 在本文中,我们将介绍如何使用 ...
### ASP.NET (C#) + MD5 加密技术解析 #### 一、概述 在现代Web应用开发中,用户信息安全尤为重要。特别是在处理用户密码时,为了保护用户的隐私和数据安全,通常采用加密技术来存储密码而不是明文保存。本文将通过...
ASP.NET是一种基于微软.NET ...综上所述,了解并熟练掌握ASP.NET中的MD5加密和网站打包技巧对于开发安全、高效的Web应用至关重要。通过这些技术,我们可以确保用户数据的安全性,同时也能方便地进行项目的部署和维护。
在Asp.Net中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的数据转化为固定长度的摘要,常用于数据完整性校验和密码存储。本文将详细探讨Asp.Net中如何进行MD5校验。 一、MD5原理 ...
MD5加密,简单方便易用,我使用的是vs2010,所以,如果你使用的是vs2005 或vs2008,请新建一个空网站,将下载的文件解压后,(除confuger文件外)复制到你的空网站中就可使用!QQ:147249735,如有问题,可以Q我,...
在ASP.NET中使用MD5进行密码加密是基本的实践,但考虑到MD5的安全性问题,推荐使用更安全的算法如SHA-256或bcrypt。在实际应用中,结合盐值和多次迭代哈希可以进一步提高安全性。了解并正确实现这些概念对于任何ASP...
综上所述,ASP.NET实现MD5加密算法涉及到的主要知识点包括:ASP.NET平台的使用,C#编程语言,MD5哈希算法的原理和应用,以及在Web应用程序中安全存储用户密码的方法。同时,还需要了解SQL数据库的管理和DBA的相关...
在提供的代码示例中,展示了如何在ASP.NET中使用MD5对字符串进行加密,分为两种方式:普通加密和密码方式加密。 1. **普通加密**: 在`Page_Load`事件处理程序中,首先获取`source.Text`的Unicode编码形式的字节...
### ASP.NET中的MD5加密 #### 一、概述 在软件开发过程中,为了保护数据的安全性和完整性,常常需要对敏感信息进行加密处理。MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,可以将任意长度的数据...
总之,ASP.NET中的DES加密解密涉及到对字符串数据的加密和解密,通过使用`DESCryptoServiceProvider`类,结合MD5哈希处理,实现了对数据的安全保护。尽管DES已不再是最安全的选择,但了解其原理和应用有助于理解加密...