两种MD5最后的值不一样,因为两种做法不一样

//MD5加密

private static string Md5Hash(string input)
        {
            MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
            byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
            StringBuilder sBuilder = new StringBuilder();
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }
            return sBuilder.ToString();
        }

static void Main(string[] args)
        {

string a = "aaaa";
            string b = "中国";
            string c = "cccc";
            int d = 1231231;
            string result1 = a + b + c + d;

string md5result11 =System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(result1, "MD5");

string md5result111 = Md5Hash(result1).ToLower();

Console.WriteLine(md5result11);
            Console.WriteLine(md5result111);
            Console.ReadKey();

}

结果输出如下:

注意:

1,如果将里面的中文换成英文或数字就没有问题,看来是因为两种方法针对中文的不同处理 ;

2,System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile在4.5上已经过期,即不提倡使用,但是百度翻译目前还用这个方法的加密验证sign

导致我整了好久,此处真想说百度反应真的挺慢的。。。如果要不是google被墙了,个人觉得百度应该用户量会大减;

如果你要是有更好的意见,请直接回复,本人为原创,请自重!转载写明请出自--清风徐徐

时间: 2024-10-26 00:55:12

两种MD5最后的值不一样,因为两种做法不一样的相关文章

将两个变量中的值进行互换的几种方法

 在做软件开发的过程中,经常需要将两个变量中的数值进行互换.我们可以使用的互换方法有三种. 第一种方法: int a = 3, b = 4;int tmp; tmp = a;a = b;b = tmp;   这种做法,是我们经常用到的做法,就是通过借助第三变量.             优点是:可读性强.             缺点是:引入第三方变量,占用内存大. 第二种方法: int a = 3, b = 4; a = a + b ; // a = 7;   原理是利用两个数的和  a +

android环境下两种md5加密方式

在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md5的认知目前仅仅停留在会使用的水平,想搞清楚还是要花点时间的,这是md5加密算法的相关介绍.本文主要介绍android平台下两种md5加密方式,分别为基于java语言的md5加密及ndk环境下基于c语言的md5加密. 下面代码为基于java语言的md5加密: public String getMD5

Ext_两种处理服务器端返回值的方式

1.Form表单提交返回值处理 //提交基本信息表单  f.form.submit({      clientValidation:true,      //表单提交后台处理地址      url:'/globe_background/Commonality/AccountClub.ashx?action=updateuserinfoform&uid=' + jsonDate.uid,      //数据提交方式      method:'POST',                      

Python -- 值转换为字符串的两种机制

可以通过以下两个函数来使用这两种机制:一是通过str函数,它会把值转换为合理形式的字符串,以便用户可以理解:而repr会创建一个字符串,它以合法的Python表达式的形式来表示值.下面是一些例子: >>> print repr("Hello, world!") 'Hello, world!' >>> print repr(10000L) 10000L >>> print str("Hello, world!")

不借助任何中间变量将两个整形变量的值交换

今天在做题的时候,突然出现一道题,就是不借助中间变量,将两个整形变量的值互换,开始有点懵,这怎么换?后来还是用两个变量不停做加减变换,差不多有十几分钟,才终于凑出来了一种方法,一时兴起,我又从网上找了一下相关的资料,说是竟然有四种方法,我就看了一下,顺便学习一下. 在我们初学阶段,一般是定义一个新的变量,借助它完成交换. 例如:int a,b;a=1; b=2;int t;t=a; a=b; b=t;这种算法易于理解,对初学者来说,一般都是用“空瓶子来回倒换”帮助理解的,而且是赋值语句的经典应用

两个变量中的值进行互换的方法

在软件开发的过程中,经常会将两个变量中的值进行互换.那么两个变量中的值进行互换的方法有几种呢? 常见的两个变量中的值互换的方法有三种,下面将进行一一介绍,当是一个总结. 第一种方法: int a = 3, b = 4; int tmp; tmp = a; a   = b; b   = tmp; 这种方法的优点是:代码可读性强,容易理解. 缺点是:使用第三方变量,浪费内存: 第二种方法: int a = 3, b = 4; a = a + b;   b = a - b;    a = a - b;

ASP.NET Core 四种方式绑定枚举值

原文:ASP.NET Core 四种方式绑定枚举值 前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满满的干货,你值得拥有. 探讨枚举绑定方式# 我们首先给出要绑定的枚举类. public enum Language { JavaScript, Java, C, Python, SQL, Oracle } 枚举绑定方式一(@Html.DropDow

JavaScript基础 === 全等于 比较运算符 既比较两个变量的值,也比较两个变量的类型

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

两种删除单链表结点的实现,一种O(n),一种O(1)

常规的删除单链表结点的做法是挨个查找到该结点的前一个结点,然后去掉要删除的这个结点,回收内存.这个需要O(n)的时间. 有一种比较快速的删除掉链表指定一个节点的方法,就是把下一个结点的内容复制到当前这个结点,然后把下一次结点删除掉,这个需要考虑当要删除的结点是最后一个结点的情况. 如果刚好是最后一个结点,则需要O(n)的时间,如果不是最后一个结点,可以在O(1)时间内完成删除操作. 1 // 2 // main.c 3 // SingleListDeleteNode 4 // 5 // Crea